2017-06-22 4 views
0

Ich suche nach Möglichkeiten, alle Tabellen auf einer bestimmten Website zu kratzen. Die Tabellen sind in allen Unterseiten identisch formatiert. Das Problem ist, die URLs dieser Unterseiten sind auf diese Weise:
url1 = 'http .../Tom',
url2 = 'http .../Mary',
url3 = ‚http .../Jason ', so dass ich keine Schleife setzen kann, indem ich die URL schrittweise verändere. Gibt es irgendwelche Möglichkeiten, dies durch Pandas zu lösen?Kann man mit Pandas HTML-Tabellen über mehrere Webseiten scrappen?

+0

Sie im Voraus wissen Sie, was die Urls wird? Woher bekommst du die URLs? – jarcobi889

+0

Wie benutzt man 'Pandas' beim Kratzen? –

+0

Sie können versuchen, die pd.read_html() -Methode zu verwenden, aber ohne ein Beispiel der Seite zu haben, ist es schwierig, etwas Spezifisches zu empfehlen. Könnten Sie uns ein Beispiel geben? – omdv

Antwort

0

wäre eine andere Idee, erste BeautifulSoup Bibliothek zu verwenden und alle table Elemente von einer Webseite und dann pd.read_html()

0

bewerbe ich mich, dass die Daten auf jeder Seite davon ausgehen, werden als HTML-table Elemente tatsächlich formatiert und sein kann verarbeitet von Pandas. (Natürlich sind viele Seite zeigt, die wie Tabellen sehen sind HTML nicht table Elemente, sondern auch zu überprüfen.)

der Code dann eine Tabelle zu verarbeiten aussehen könnte dies folgendermaßen aus:

df = pd.read_html(url, header=0)[0] 

oder dies:

df = pd.read_html(url)[0] 

ich gehe davon aus, dass es auf jeder der Seiten nur eine Tabelle von Interesse ist. In der Tat könnten Sie auch feststellen, dass andere Parameter von read_html möglicherweise variiert werden müssen.

Dann wird der vollständige Code würde wie folgt sein:

stub_url = 'http:// ...' 
dfs = [] 
for ending in ['Tom', 'Mary', 'Jason']: 
    one_df = pd.read_html(stub_url + ending, header=0)[0] 
    dfs[ending] = one_df 
+0

Schätzen Sie das. Leider bin ich Ihrem Code gefolgt, aber es gibt zurück als: Liste Indizes müssen ganze Zahlen oder Scheiben sein, nicht str. –

+0

Sorry, versuchen Sie es jetzt. –

Verwandte Themen