Seite 1 von 1

Crawling mit Python

Verfasst: Samstag 25. April 2020, 14:20
von Julie
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 :)

Re: Crawling mit Python

Verfasst: Samstag 25. April 2020, 17:19
von __blackjack__
@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?

Re: Crawling mit Python

Verfasst: Samstag 25. April 2020, 17:54
von Julie
__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!?

Re: Crawling mit Python

Verfasst: Samstag 25. April 2020, 19:42
von __blackjack__
@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.

Re: Crawling mit Python

Verfasst: Samstag 25. April 2020, 20:05
von Julie
__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"...