首页 > 解决方案 > 无法从网页中获取表格中的所有 pdf 链接

问题描述

我已经在 python 中结合 selenium 编写了一个脚本,以抓取pdf在单击网页表格中的不同数字时生成的不同链接,例如 等110015710110015670

网站链接

我的脚本可以单击这些链接,显示pdf文件,但只能解析其中的 5 个。

我怎样才能得到它们?

到目前为止我已经尝试过:

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

link = "replace_with_above_link"

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get(link)

[driver.execute_script("arguments[0].click();",item) for item in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,"tr.Iec")))]
for elem in wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,".IecAttachments li a[href$='.pdf']"))):
    print(elem.get_attribute("href"))
driver.quit() 

标签: pythonseleniumselenium-webdriverweb-scraping

解决方案


当您单击元素时,它将执行 XHR 以请求 pdf 链接,每次单击后添加延迟。

for item in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,"tr.Iec"))):
    driver.execute_script("arguments[0].click();",item)
    time.sleep(1)

推荐阅读