[英]Stale element reference: element is not attached to the page document when looping through pages
[英]Getting an “Stale element reference” When trying to loop through pages with the intention of scraping multiple pages
我的 Python 代码有问题。 目的是用Selenium打开网站(craigslist),搜索一个文本(Honda),然后抓取这个网站的三个页面。 我不断得到
“StaleElementReferenceException:过时的元素引用:元素未附加到页面文档”异常
当迭代到达第二页时。 我无法确切说明为什么它停在第二页而不是再次单击“下一步”按钮到达第三页,然后最终抓取数据并打印出来。
这是我的代码:
import time
from selenium import webdriver
from bs4 import BeautifulSoup
DRIVER_PATH = "/Users/mouradsal/Downloads/DataSets Python/chromedriver"
URL = "https://vancouver.craigslist.org/"
browser = webdriver.Chrome(DRIVER_PATH)
browser.get(URL)
browser.maximize_window()
time.sleep(4)
search = browser.find_element_by_css_selector("#query")
search.send_keys("Honda")
search.send_keys(u'\ue007')
content = browser.find_elements_by_css_selector(".hdrlnk")
button = browser.find_element_by_css_selector(".next")
for i in range(0,3):
button.click()
print("Count: "+ str(i))
time.sleep(10)
print("done loop ")
for e in content:
start = e.get_attribute("innerHTML")
soup = BeautifulSoup(start, features=("lxml"))
print(soup.get_text())
print("***************************")
任何建议将不胜感激!
谢谢
for i in range(0,3):
button = driver.find_element_by_css_selector(".next")
button.click()
print("Count: "+ str(i))
time.sleep(10)
您需要嵌套您发现的元素,导致每次访问新页面时 webelement 都会发生变化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.