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: 14250
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?
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
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: 14250
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.
“All tribal myths are true, for a given value of 'true'.” — Terry Pratchett, The Last Continent
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