使用urllib.requests下载pdf会写入无法打开的pdf

时间:2014-08-06 22:46:14

标签: python python-3.x urllib

我正在尝试从具有身份验证的网站下载pdf文件并将其保存在本地。此代码似乎运行但保存了无法打开的pdf文件(“它不是受支持的文件类型,或者因为文件已损坏”)。

import urllib.request

auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(realm=None,
                   uri=r'http://website/',
                   user='admin',
                   passwd='pass')
opener =  urllib.request.build_opener(auth_handler)
urllib.request.install_opener(opener)
url = 'http://www.website.com/example.pdf'
res = opener.open(url)
urllib.request.urlretrieve(url, "example.pdf")

2 个答案:

答案 0 :(得分:0)

听起来你的网址不好。当您在浏览器中输入该URL时,请确保在浏览器中获得“.pdf”文件。

编辑:

我的意思是说,您的网址应如下所示:“http://www.cse.msu.edu/~chooseun/Test2.pdf”您的代码必须能够从网址中提取此pdf。希望这会有所帮助。

答案 1 :(得分:0)

我认为问题在于“urllib.request.urlretrieve(url,”example.pdf“)”。完成身份验证后,请使用以下内容保存文件:

pdfFile = urllib.request.urlopen(url)
file = open("example.pdf", 'wb')
file.write(pdfFile.read())
file.close()