Python webscraping mit Python

immer_online

Newbie
Registriert
Feb. 2020
Beiträge
1
ein Hallo in die Runde,

ich möchte aus einer website Informationen auslesen. Das kleine Programm dazu funktioniert auch, aber ich habe ein Problem mit der Website. Und zwar werden die gesuchten Inhalte nicht im Quelltext sondern nur unter "Elemente untersuchen" (str+umschalt+i) angegeben.
Meine Frage ist wie ich die Elemente auslesen kann. Ich packe mal unten den aktuellen Code (in Python) rein. Könnt ihr mir Tipps geben wie ich das hinbekomme? Vielen Dank

import requests
from bs4 import BeautifulSoup
page = requests.get('#url')
soup = BeautifulSoup(page.content, 'html.parser')
Timer = soup.find (id='#trigger')
print (Timer)
 
ich hab's nicht verstanden. Dein Code funktioniert, ok. Und was genau klappt nun nicht?
 
ich denke der OP will sich durch die html struktur navigieren. hab mit bs4 noch nie was gemacht, aber wenn ich dem quickstart guide hier glauben schenken darf, sind die einzelnen Elemente als Attribut aufrufbar.
siehe https://www.crummy.com/software/BeautifulSoup/bs4/doc/
 
Könnte sein, dass dir der Inspektor durch Javascript, oder anders dynamisch, erzeugten html Code anzeigt, der erst ausgeführt werden muss.
Soweit mein Stand unterstützt requests kein Javascript oder anderen dynamisch erzeugten Inahlt, müsste man weiter schauen, wie der Webseiten Inhalt erzeugt wird.
Eine Möglichkeit Javascript auszuführen wäre es, anstelle von requests, selenium webdriver mit headless Firefox oder Chrome zu nutzen.
 
Web Components könnten auch für dynamischen Inhalt verantwortlich sein.

Ein Vergleich der Quelltextanzeige im Browser mit der Anzeige im Inspector (strg+umschalt+i) lässt eine Bewertung zu. Mit strg+f den Quelltext nach "trigger" durchsuchen.

Ansonsten könnte hier auch ein Syntaxfehler vorliegen.
Wenn ich mir die Soup Doku durchlese, kommt da keine Raute vor der ID.

Timer = soup.find (id='#trigger') würde demnach nach <elem id="#trigger" /> suchen.

Ich kenne die Möglichkeiten von Python nicht, würde aber das hier vermuten:
Python:
Timer = soup.find(id='trigger')
 
Zurück
Oben