2017-09-24 2 views
0

begrenzen In der Tabelle Ich kratze, die zweite Zeile ist sehr lang, und ich möchte nur die Zeichen beschränken, die drin sind es da möchte ich nur die Information, die am Anfang der Zeichenfolge ist. Ich möchte die anderen Reihen so abkratzen, wie sie sind. Also ist mein Code wie folgt:Wie kann ich die Zeichen in einer bestimmten Tabellenzeile in einer for-Schleife (Python/BeautifulSoup)

table = soup.find(id="table3") 
    table_rows = table.findAll('tr') 

    for tr in table_rows: 
     td = tr.findAll('td') 
     row = [i.text.strip() for i in td] 
     print(row) 

Wie kann ich nur die zweite Reihe anvisieren?

Die Ausgabe sieht speziell wie:

["Computer price for Apple Inc. ,\n\n\nType\nForward\n\n\n\n\n\n\nBack\n\n\n\n\nDie\n\r\n... 

Also nur grap mag ich den Computer price for Apple Inc. Teil, vielleicht gibt es einen besseren Weg, als nur Zeichen-Grenze als heuristisches verwenden. Ist es möglich, es zu spezifizieren, alles vor ,\n\n\n

Antwort

0

zu nehmen Sie können split-Funktion verwenden, um Textzeile zu trennen. Ich habe ",\n\n\n" als Trennzeichen verwendet:

>>> row = 'Computer price for Apple Inc. ,\n\n\nType\nForward\n\n\n\n\n\n\nBack\n\n\n\n\nDie\n\r\n' 
>>> row.split(sep=",\n\n\n", maxsplit=1)[0] 
'Computer price for Apple Inc. ,' 
+0

Vielen Dank! Aber wie soll ich es schreiben, wenn ich mehrere Seiten scrapiere, wobei jede Seite einen anderen Computerpreis für eine andere Firma hat. – Jason

+0

Okay, vergiss es, danke, danke! – Jason

Verwandte Themen