Webseiten Scraper in Python?
Ich würde gerne einen WebScraper programmieren, jedoch bekomme ich es nicht hin. Ich würde gerne von einer Webseite die Frequenz von unserem Stromnetz auslesen, bekomme aber als Ausgabe nur "None". Hier ist mein Python-Code:
from bs4 import BeautifulSoup
import requests, time
url = f'https://www.apg.at/de/markt/Markttransparenz/Netzregelung/Netzfrequenz'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
table = soup.find('h3', attrs={'class':'mb-0 text-danger ng-tns-c64-1'})
print(table)
Ich habe vor 2 Stunden mit Python angefangen, habe aber bereits gute Kenntnisse in C++ und Java etc. Hat jemand eine Idee, wie ich das Problem lösen kann oder hat jemand bereits was ähnliches programmiert?
LG
1 Antwort
Das Problem bei deinem Fall ist, dass das Element zum einen nicht in diesem Dokument liegt, welches du aufrufst (es befindet sich stattdessen in einem iFrame) und zum anderen dynamisch generiert wird. Da das requests-Modul allerdings den ersten Response, den es erhält, entgegennimmt, wäre das Element beim Parsen für dich nie auffindbar.
Nimm stattdessen Selenium (ein Framework für automatisierte Tests von Webseiten). Damit hast du mehr Kontrolle und kannst bspw. in verschiedene iFrames wechseln (wie das geht, habe ich hier schon einmal gezeigt) sowie auf Inhalte warten, die dynamisch nachgeladen werden.