Kratzen HTML-Tabellen aus einer bestimmten URL in das CSV
Ich Suche ein tool, dass kann ausgeführt werden auf der Kommandozeile wie folgt:
tablescrape 'http://someURL.foo.com' [n]
Wenn n
ist nicht angegeben und es gibt mehr als eine HTML-Tabelle auf der Seite, es sollte zusammenfassen (Kopfzeile, Anzahl der Zeilen) in eine nummerierte Liste.
Wenn n
angegeben ist oder ob es nur eine Tabelle ist, sollte es analysiert die Tabelle und spucken es auf stdout als CSV-oder TSV.
Mögliche zusätzliche Merkmale:
- Wirklich Lust Sie konnte Parsen einer Tabelle innerhalb einer Tabelle, aber für meine Zwecke -- abrufen von Daten von wikipedia-Seiten, und dergleichen-das ist overkill.
- Eine option, um asciify jedes unicode-Zeichen.
- Eine option, gelten ein beliebiger regex-Ersetzung für die Befestigung weirdnesses in der analysierten Tabelle.
Was würden Sie verwenden, um cobble so etwas zusammen?
Das Perl-Modul HTML::TableExtract könnte ein guter Ort, um zu starten und kann auch den Fall behandeln von verschachtelten Tabellen.
Dies könnte auch ein ziemlich kurzes Python-Skript mit BeautifulSoup.
Würde YQL ein guter Ausgangspunkt?
Oder, idealerweise, haben Sie geschrieben etwas ähnliches, und haben einen Zeiger darauf?
(Ich bin sicherlich nicht die erste person, die dies benötigen.)
Fragen:
- Wie kann ich das kratzen einer HTML-Tabelle in CSV?
- Wie kann ich umwandeln einer HTML-Tabelle in CSV?
- Optionen für den HTML-scraping?
- Sorry @dreeves, aber Stack-Überlauf ist nicht eine "freie Programmierer-for-hire" - service.
- Aber wo ist der Frage?
- Bearbeiten Sie die Frage, wenn Sie möchten, zu formulieren, die es.
- (erledigt; danke. beachten Sie, dass ich bitte in diesem Fall ein tool wie dieses existiert. und falls nicht, Schreibe ich es selbst und teilen es hier)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist mein Erster Versuch:
http://yootles.com/outbox/tablescrape.py
Braucht es ein bisschen mehr Arbeit, wie eine bessere asciifying, aber es ist brauchbar. Zum Beispiel, wenn Sie es auf diese Liste der Olympischen records:
er sagt dir, dass es 8 Tische zur Verfügung und es ist klar, dass die 2. und 3. diejenigen (Männer und Frauen records) sind die, die Sie wollen:
Dann, wenn Sie es erneut ausführen, Fragen für die 2. Tabelle,
Erhalten Sie eine angemessene Klartext-Daten Tabelle:
Mit TestPlan produzierte ich ein grobes Skript. Angesichts der Komplexität von web-Tabellen es muss wahrscheinlich sein, abgestimmt auf alle Seiten.
Diesem ersten Skript listet die Tabellen auf der Seite:
Zweiten Skript extrahiert dann die Daten von einer Tabelle in eine CSV-Datei.
Meine CSV-Datei sieht wie folgt aus. Beachten Sie, dass wikipedia-Informationen extrahieren, die in jeder Zelle. Es gibt viele Möglichkeiten, um es loszuwerden, aber nicht in einer generischen Weise.