Python BeautifulSoup Website Crawler?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Lass dir den Response einmal ausgeben und schau, ob in ihm überhaupt die Elemente zu finden sind, die du suchst. Hierbei kannst du auch mit dem Seitenquelltext abgleichen, den du über deinen Webbrowser für die Webseite aufrufen kannst (hierbei ist nicht die Inspektoransicht der Webentwicklungstools gemeint, sondern explizit der Kontextmenüpunkt Seitenquelltext anzeigen).

Nicht alle Elemente werden stets mit dem ersten Response kreiert. Es könnten auch Inhalte via JavaScript nachgeladen werden (solche Inhalte werden in der Seitenquelltextansicht nicht angezeigt, dafür aber im Webinspektor). Wenn dies der Fall ist, solltest du statt BS4 ein Tool wie Selenium verwenden. Mit dem kannst du auf Inhalte warten.

Noch ein anderer Grund könnte vielleicht sein, dass der HTML Parser scheitert, weil das HTML der Seite invalid ist.

Nevron 
Fragesteller
 27.01.2022, 22:17

Danke dir.

Die Response hatte ich geprüft. Die war null, bzw tatsächlich nichts. Hatte die Response ausgegeben. Keinerlei Anzeige. Selbst im Debugger wurde nichts angezeigt. Nicht einmal null. Bei einer Seite, bei der es funktionierte, hatte ich Status 200 zurückbekommen. Am Ende lag am Javascript. Der Inhalt wurde nachgeladen. Ich habe auch festgestellt, dass es hier und da Probleme mit JINJA2 Templateverererbung gibt.

Ich hatte die Anwendung zuerst mit PyQT5 geschrieben. Hatte auch gelesen, dass wohl PyQT5 wohl hier und da Probleme mit BeautifulSoup hat. Hab dann mal aus Spaß, eine Flaskanwendung erstellt. Gleicher Code. Und siehe da, da wurden mir dann Exceptions ausgegeben.

0