【发布时间】:2021-06-24 12:32:38
【问题描述】:
我的 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("***************************")
任何建议将不胜感激!
谢谢
【问题讨论】:
标签: python selenium beautifulsoup webdriver screen-scraping