使用 Selenium 在下一页列表上抓取循环
Scraping loop on list with next page using 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
下面显示第一页是一个 type=list
列表,标题正确
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()
有点相似,虽然我不想通过使用 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
下面显示第一页是一个 type=list
列表,标题正确
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()