Crawling mit Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Julie
User
Beiträge: 7
Registriert: Samstag 25. April 2020, 14:11

Erst einmal hallo an Alle, ich bin neu hier in dem Forum :)


Ich lerne gerade crawlen und bei manchen Websites bekomme ich nur leere Listen ausgegeben..
Woran liegt das?


Bsp.: Ich crawle google:


url = "https://www.google.com/search?q=gecrawl ... e&ie=UTF-8"
r = requests.get(url)
doc = BeautifulSoup(r.text, "html.parser")

print(doc.select(".r")


wieso ist die ausgegebene Liste leer?

Vielen Dank für Eure Hilfe,
Julie :)
Benutzeravatar
__blackjack__
User
Beiträge: 14005
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Julie: Wieso nicht? Was hättest Du denn erwartet? Also ganz konkret bei der URL. Schau Dir mal an was da im Seitenquelltext steht und was hättest Du ganz konkret als Ergebnis von dem `select()` erwartet anstelle einer leeren Liste?
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Julie
User
Beiträge: 7
Registriert: Samstag 25. April 2020, 14:11

__blackjack__ hat geschrieben: Samstag 25. April 2020, 17:19 @Julie: Wieso nicht? Was hättest Du denn erwartet? Also ganz konkret bei der URL. Schau Dir mal an was da im Seitenquelltext steht und was hättest Du ganz konkret als Ergebnis von dem `select()` erwartet anstelle einer leeren Liste?
Also bei .r hätte ich erwartet, dass mit der Inhalt der Klasse ausgegeben wird.. oder nicht!?
Benutzeravatar
__blackjack__
User
Beiträge: 14005
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Julie: Ja. Und wenn kein Element vorkommt das diese Klasse hat, dann ist das eben eine leere Liste. Wie gesagt, schau Dir mal das HTML an welches Du da geliefert bekommst. Nicht das was am Ende in einem *Browser* im DOM vorhanden ist, nur das was tatsächlich direkt ausgeliefert wird.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Julie
User
Beiträge: 7
Registriert: Samstag 25. April 2020, 14:11

__blackjack__ hat geschrieben: Samstag 25. April 2020, 19:42 @Julie: Ja. Und wenn kein Element vorkommt das diese Klasse hat, dann ist das eben eine leere Liste. Wie gesagt, schau Dir mal das HTML an welches Du da geliefert bekommst. Nicht das was am Ende in einem *Browser* im DOM vorhanden ist, nur das was tatsächlich direkt ausgeliefert wird.
Achso.. also das was ich als print(r.text) angezeigt bekomme ist weniger als wenn ich auf der seite den html code durchsuche (das ist wohl der DOM)?
Dann ists natürlich klar.. :lol: danke :)

habe mal gerade gelesen.. also alles was hinter den # steht im DOM, kann ich also nicht "rauspflücken"...
Antworten