问题描述
Scraping next pages issue with selenium
有点相似,但我不想通过与 bs4 一起使用而使它变得更复杂
我想在每一页上抓取所有 10 个标题(pdf 的链接)。这是引发 StaleElementReferenceException 的代码:消息:过时元素引用:元素未附加到页面文档(在 i.click()
处)
driver.find_element_by_css_selector('button[class="btn btn-primary"][type="submit"]').click()
for j in range(10):
pdfs = driver.find_elements_by_css_selector(".title a")
if j < 10:
nextpg = driver.find_element_by_css_selector(".tx-pagebrowse-page button")
pdfs = driver.find_elements_by_css_selector(".title a")
for i in pdfs:
i.click()
time.sleep(5)
if j < 10:
nextpg.click()
else:
break
pdfs = driver.find_elements_by_css_selector(".title a")
print(type(pdfs))
for my_pdf in pdfs:
print(my_pdf.get_attribute('innerHTML'))
<class 'list'>
dfhgadr asfdgsd
sDF SDF
SDFSDF sdf
SDF DSfdf
SDFD sdf
SDFSdf fdf
zewr4
sHSDFG
RSZJRT
dhff fgf
解决方法
代替 pdfs[[i]].click() 你可以尝试如下:
i.click()