从python中的URL下载实时pdf文件时出错
我正在尝试下载一个包含以下Python函数的文件。我可以在浏览器中打开它(重定向到另一个URL)。但是代码出现了404错误从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
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哪个标头使其有资格作为正常请求处理?