You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Selenium和Python遍历下载多份PDF?代码报错求助

解决Selenium批量下载PDF的报错问题

嘿,我看到你刚接触Selenium和Python,在批量下载PDF时碰了壁,咱们来拆解下问题根源,再给你两个可行的解决办法~

问题出在哪?

你代码里的核心错误在于:driver.get()这个方法只是让Chrome加载指定的URL,它不会返回任何响应对象(实际返回的是None)。而iter_content()是requests库中HTTP响应对象的方法,你把None赋值给page后调用这个方法,自然会报错啦。


解决方案一:用requests直接下载(更高效)

既然你要下载的是直接可访问的PDF链接,完全不需要启动浏览器——requests库就能搞定,速度更快、资源占用更少。代码示例:

import requests

# 自定义请求头,避免被网站识别为爬虫(可选但推荐)
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}

cusip = ['abc123','def456','ghi789']
for a in cusip:
    pdf_url = f"http://mylink={a}.pdf"
    try:
        # 发送请求获取PDF内容
        response = requests.get(pdf_url, headers=headers)
        response.raise_for_status()  # 如果请求失败,抛出异常
        
        # 写入本地文件
        with open(f"{a}.pdf", 'wb') as f:
            f.write(response.content)
        print(f"{a}.pdf 下载成功!")
    except Exception as e:
        print(f"下载{a}失败:{str(e)}")

解决方案二:用Selenium配置自动下载(适合需要浏览器渲染的场景)

如果你的PDF链接需要先登录、或者依赖浏览器动态渲染才能访问,那还是得用Selenium。这时候要配置Chrome的下载偏好,让它自动把PDF保存到指定文件夹,不用手动处理文件流:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os

# 设置PDF保存的文件夹
download_folder = os.path.join(os.getcwd(), "pdf_files")
# 如果文件夹不存在就创建
os.makedirs(download_folder, exist_ok=True)

# 配置Chrome浏览器选项
chrome_options = Options()
chrome_options.add_experimental_option("prefs", {
    "download.default_directory": download_folder,  # 指定下载路径
    "download.prompt_for_download": False,  # 不弹出下载确认框
    "download.directory_upgrade": True,  # 允许更新下载路径
    "plugins.always_open_pdf_externally": True  # 直接下载PDF,不打开预览
})

# 启动Chrome浏览器
driver = webdriver.Chrome(options=chrome_options)

cusip = ['abc123','def456','ghi789']
for a in cusip:
    pdf_url = f"http://mylink={a}.pdf"
    driver.get(pdf_url)

# 所有文件下载完成后关闭浏览器
driver.quit()
print(f"所有PDF已保存到:{download_folder}")

内容的提问来源于stack exchange,提问作者Shashi Shankar Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:21:53