我使用 Python Selenium 来抓取网站, 但我的爬虫因为一个例外而停止了:
StaleElementReferenceException
:消息:陈旧元素引用:元素未附加到页面文档
即使没有附加元素,我怎样才能继续爬行?
更新
我将我的代码更改为:
try:
libelle1 = prod.find_element_by_css_selector('.em11')
libelle1produit = libelle1.text # libelle1 OK
libelle1produit = libelle1produit.decode('utf-8', 'strict')
except StaleElementReferenceException:
pass
但我有这个例外
NoSuchElementException: Message: no such element
我也试过这个:
try:
libelle1 = prod.find_element_by_css_selector('.em11')
libelle1produit = libelle1.text # libelle1 OK
libelle1produit = libelle1produit.decode('utf-8', 'strict')
except :
pass
答案 0 :(得分:4)
更具体地说明约翰戈登在谈论什么。处理StaleElementReferenceException
常见的selenium异常并忽略它:
.travis.yml
答案 1 :(得分:3)
在产生该错误的代码周围放置一个try-except块。
答案 2 :(得分:1)
看起来浏览器渲染引擎或Javascript引擎正在使用该元素,并且它阻止了此元素上的其他外部操作。您可以在一段时间后尝试访问它。如果持续时间较长,则可以抛出异常。给出了一些很好的例子here。