Praktisch gesehen: Ein Python-Skript für Datenjournalisten
Sie sind Datenjournalist? Und haben erste Schritte in Python 3 unternommen? Für Sie habe ich ein kleines Skript geschrieben, das Tabellen aus Webseiten extrahiert und speichert.
Vorsicht, Programmiercode! Das folgende Skript liest per Beautiful Soup die Tabelle in einer Website aus und speichert die Daten in einer csv-Datei ab. Die Datei kann dann in Google Spreadsheets geladen und vom Datenjournalisten ausgewertet werden.
import csv, requests
from bs4 import BeautifulSoup
#1. Schritt: HTML-Code der Website laden
r = requests.get(‚http://frankbi.com/aaja/farmermarkets/‘)
rHTML = r.text
soup = BeautifulSoup(rHTML)
#2. Schritt: In Website die richtige Tabelle suchen mit Webdeveloper (#id oder .class finden)
#Entscheiden, welche Tabellenköpfe ich benötige. Aufschreiben.
datensaetze = []
#3. Schritt: Liste anlegen, die alle Tabellenreihen enthält
tableRows = soup.select(‚.datatable tr ‚)
#4. Schritt: einzelne Tabellenreihe holen.
for i in tableRows:
#5. Schritt: Liste anlegen, die alle Tabellendaten einer ausgewählten Tabellenreihe enthält
tableData = i.select(‚td‘)
#6. Schritt: Sicher stellen, dass nur die richtigen Reihen angezeigt werden:
if len(tableData) == 8:
#7. Schritt: Datensatz für CSV erzeugen
county = tableData[0].text
marketName = tableData[1].text
address = tableData[2].text
datensatz = [county, marketName, address]
datensaetze.append(datensatz)
tupleDatensaetze = tuple(datensaetze)
#8. Schritt: Datensatz in CSV-Datei schreiben.
# csv-Datei erzeugen mit ‚with‘ (öffnet und schließt die Datei)
with open(‚meineDaten.csv‘, ‚w‘ ,newline=“) as csvfile:
#10. Schritt: writer-Objekt erzeugen, Daten reinschreiben
writerObject = csv.writer(csvfile)
writerObject.writerow([‚County‘,’Market Name‘,’Address‘,])
writerObject.writerows(tupleDatensaetze)
Das Skript lässt sich schnell anpassen. Viel Spaß!
Kommentare
No Comments
Schreiben Sie einen Kommentar