Ich versuche, eine Website namens iens mit verschiedenen Webseiten zu kratzen. Im Moment kann ich erfolgreich eine Seite scrappen.Python Selen - StaleElementReferenceException
Mein Code so weit:
chrome_path = '/Users/username/Downloads/chromedriver'
driver = webdriver.Chrome(chrome_path)
url = 'https://www.iens.nl/restaurant'
pageExt = '#page='
restaurantList = []
cityList = ['utrecht']
def scrape(pageNumber):
driver.get(url + '+' + cityList[0] + pageExt + str(pageNumber))
items = driver.find_elements_by_class_name("resultItem-
information")
for item in items:
restaurantList.append(item.text)
return restaurantList
print scrape(14)
Das gibt mir die Ergebnisse, die ich brauche. Jedoch, wenn ich mehr als eine Seite wie diese kratzen wollen:
print scrape(12)
print scrape(14)
ich die richtigen Ergebnisse für die Daten auf der Webseite 12, aber anstatt die Ergebnisse für die Homepage 14 als auch immer, ich die folgende Fehlermeldung erhalten :
selenium.common.exceptions.StaleElementReferenceException: Message:
stale element reference: element is not attached to the page document
Die Seite wird https://www.iens.nl/restaurant+utrecht genannt
Können Sie mir helfen?
Vielen Dank im Voraus!
Ich bekomme keinen Fehler mehr. Die erste Zeile ist immer noch korrekt, aber die zweite "scrape (number)" fügt die selbe Zeile wie die erste scrape der restaurantList hinzu. Also restaurantLine = [Ergebnisse von der ersten Seite, Ergebnisse von der ersten Seite] – titusAdam
Wenn ich es bis Bereich 10 benutze, fehlen Seite 2, 4 und 6 übrigens! – titusAdam
Da die Seite aus irgendeinem Grund zufällig nach 'driver.get' aufgefrischt werden kann, füge ich 1 Sekunde hinzu, um zu warten. Dies scheint jetzt zu funktionieren – Andersson