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

使用Python requests下载指定PDF时遇403错误或文件损坏的解决方法

解决思路:requests下载Cell期刊PDF返回403/文件损坏的问题
  • 添加请求头模拟浏览器访问
    网站会检测请求的User-Agent,直接用requests.get默认的UA会被拦截。需要添加浏览器的UA信息,示例代码:

    import requests
    
    def download_pdf(url):
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
        }
        response = requests.get(url, headers=headers)
        # 先检查响应状态码
        if response.status_code == 200:
            with open('sample.pdf', 'wb') as f:
                f.write(response.content)
            print("下载成功")
        else:
            print(f"请求失败,状态码:{response.status_code}")
    
    if __name__ == "__main__":
        url = "https://www.cell.com/heliyon/pdf/S2405-8440(18)33206-7.pdf"
        download_pdf(url)
    
  • 处理可能的Cookie验证
    部分期刊网站需要Cookie验证(比如会话信息),可以从浏览器中复制当前会话的Cookie添加到请求头:

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
        'Cookie': '这里粘贴浏览器中复制的Cookie内容'
    }
    
  • 检查重定向
    有些PDF链接会先重定向到真实资源,确保requests自动处理重定向(默认是开启的,但可以显式设置allow_redirects=True)。

  • 验证响应内容
    如果下载后文件损坏,可打印response.text查看是否是HTML错误页面,而非PDF内容。

内容的提问来源于stack exchange,提问作者jonahbardos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:50:01