我正在尝试从具有身份验证的网站下载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")
答案 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()