问题

selenium爬取数据时出现如下错误:

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document (Session info: chrome=102.0.5005.63)

分析

这是网页没有加载完毕,就开始爬取。

解决方法

方法1 :使用 sleep(1), 但效果不好。
方法2: 最终使用等待网页的最后一个元素加载完毕,再爬取数据。

代码

假设最后一个元素的class 是 layui-layer-move

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By

wd = webdriver.Chrome(service=Service(r'd:\webdrivers\chromedriver.exe'))
wait = WebDriverWait(wd, 10)
        wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'layui-layer-move')))
GitHub 加速计划 / eleme / element
15
3
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:4 个月前 )
c345bb45 1 年前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 1 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐