Web Crawler mit Scrapy bleibt leer!

Django, Flask, Bottle, WSGI, CGI…
Antworten
PhilDE2000
User
Beiträge: 1
Registriert: Donnerstag 22. April 2021, 07:50

Schönen guten Tag zusammen!

ich arbeite momentan an einem Web Crawler für einen Kumpel von mir der die Steam Preise für bestimmte Items sich ziehen soll...

Aber mit folgendem Code:

Code: Alles auswählen

import requests
from bs4 import BeautifulSoup

url = "https://steamcommunity.com/market/listings/252490/Blackout%20Vest"

response = requests.get(url)

html = BeautifulSoup(response.text, "html.parser")

buyPrice = html.find_all("span", class_="market_commodity_orders_header_promote")

allBuyPrices = list()

for price in buyPrice:
    allBuyPrices.append(price.text)

print(allBuyPrices)
bleibt das Array immer leer... Hat jemand eine Idee woran das liegen kann? :/

Danke!
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

wenn du keine Fehlermeldungen bekommst würde ich mal schauen an was die Namen den gebunden werden, also
print(buyPrice)
print(price)
print(price.text)

Dann kannst du die Ausgaben mit deinen Erwartungen vergleichen, eventuell findest du so den Fehler.

Zum Code kann ich dir sonst leider nicht viel sagen, außer dass du dich nicht an die Namenskonvektionen von Python gehalten hast. Man schreibt alle Namen klein_mit_unterstrich, Ausnahmen sind Konstanten, die schreibt man GANZ_GROSS und Klassen in CamelCase-Schreibweise.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@PhilDE2000: Das liegt daran, dass es solche <span>-Elemente mit der Klasse nicht gibt. Die gibt es erst wenn der Browser auf der Seite JavaScript ausgeführt hat. Die Info wird HTML in einem JSON-Objekt nachgeladen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten