python - 无法从网页中获取表格中的所有 pdf 链接
问题描述
我已经在 python 中结合 selenium 编写了一个脚本,以抓取pdf
在单击网页表格中的不同数字时生成的不同链接,例如 等110015710
。110015670
我的脚本可以单击这些链接,显示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()
解决方案
当您单击元素时,它将执行 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)
推荐阅读
- html - 使用 VBA 获取嵌套表和 Div 中的值
- python - Python 变量名
- javascript - 检测 URL 中的特定哈希
- python-3.x - 如何通过mac终端安装python 3?
- python - 如何使用 python-can 修复损坏的 .blf 文件(来自 Vector 软件)
- java - Druid - 设备上没有剩余空间(中层管理器)
- firefox-addon-webextensions - “web_accessible_resources”的安全性
- java - 如何将 arrayList 存储到 Map '字符串作为键以及如何检索它..!
- java - 服务于多个应用程序的 Java 缓存
- windows - 无法使用 DateTime 格式化从 Win32_NetworkAdapterConfiguration 获得的 DHCPLeaseObtained