从python中的URL下载实时pdf文件时出错

从python中的URL下载实时pdf文件时出错,python,python-requests,Python,Python Requests,我正在尝试下载一个包含以下Python函数的文件。我可以在浏览器中打开它(重定向到另一个URL)。但是代码出现了404错误 import requests def downloadFile(url, fileName): r = requests.get(url, allow_redirects=True, stream=True) with open(fileName, "wb") as pdf: for ch

我正在尝试下载一个包含以下Python函数的文件。我可以在浏览器中打开它(重定向到另一个URL)。但是代码出现了404错误

import requests
 def downloadFile(url, fileName):
        r = requests.get(url, allow_redirects=True, stream=True)
        with open(fileName, "wb") as pdf:             
            for chunk in r.iter_content(chunk_size=1024):
                if chunk:
                    pdf.write(chunk)


downloadFile("http://pubs.vmware.com/vsphere-55/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-552-storage-guide.pdf", "vsphere-esxi-vcenter-server-552-storage-guide.pdf")

很少有网站会基于语言或位置进行屏蔽。下面的代码带有额外的标题

In [11]: def downloadFile(url, fileName):
         headers = {'Accept-Language': 'en-US,en;q=0.9,te;q=0.8'}
         r = requests.get(url, allow_redirects=True, stream=True, headers=headers)
        with open(fileName, "wb") as pdf:             
           for chunk in r.iter_content(chunk_size=1024):
               if chunk:
                    pdf.write(chunk)

In [12]: downloadFile("http://pubs.vmware.com/vsphere-55/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-552-storage-guide.pdf", "vsphere-esxi-vcenter-server-552-storage-guide.pdf")

如果你得到一个404,你可能会被重定向到其他地方,因为你的代码是作为一个刮板机器人(有些网站不支持)。尝试添加一个标头,看看它是否会更改响应。您不直接使用重定向url的原因是什么?@Idlehands哪个标头使其有资格作为正常请求处理?