Wer hat eine Idee, was ist los mit dem unten stehenden Code? Es greift die Daten von nur einem Tag. Die Webseite ist jedoch eine dynamische Web-Datenbank und enthält Daten für eine Reihe von Jahren. Ich muss die Daten für jeden Monat und jeden Tag im Zeitraum 2013-2016 abkratzen und in einer CSV-Datei speichern.Dynamische Web-Datenbank Scraping in Python
import calendar
import requests
from bs4 import BeautifulSoup
cal = calendar.Calendar()
base_url = 'http://www.pse.pl/index.php?modul=21&id_rap=24&data=2016'
month_url = '&Month='
day_url = '&Day='
for year in range(2015, 2017):
for month in range(1, 13):
monthdays = [d for d in cal.itermonthdays(year, month) if d != 0]
for day in monthdays:
r = requests.get(base_url + str(year) + month_url + str(month) + day_url + str(day))
soup = BeautifulSoup(r.text,'lxml')
findtable = soup.find('table',{'id':'tabela'})
for i in findtable.findAll('tr'):
for j in i.findAll('td'):
print (j.text)
Vielen Dank für Ihre Antwort. Ich mag die Art, wie Sie meinen Code geändert haben. Ich denke ich verstehe, wie es funktioniert. Ich habe unten eine weitere Ausgabe hinzugefügt, von der Sie wahrscheinlich wissen, wie sie zu lösen ist. – taumar
@ taumar: Sie sollten dies bitte als separate Frage stellen. (Lassen Sie es mich wissen, wenn Sie es tun, und ich werde eine Antwort geben, wenn niemand sonst etwas tut.) Aller Wahrscheinlichkeit nach werden die echten Pandas-Experten hier auf SO Ihnen eine viel bessere Antwort geben können, als ich kann. –