使用urllib.requests下载pdf时生成无法打开的pdf

0 投票
2 回答
2962 浏览
提问于 2025-04-18 16:19

我正在尝试从一个需要登录的网站下载一个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

我觉得问题出在这行代码:“urllib.request.urlretrieve(url, "example.pdf")”。在你完成身份验证后,可以用下面这种方式来保存文件:

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

听起来你输入的链接有问题。确保在浏览器中输入这个链接时,能正确打开一个“.pdf”文件。

编辑:

我想说的是,你的链接应该像这样:“http://www.cse.msu.edu/~chooseun/Test2.pdf”。你的代码必须能够从这个网址获取到这个pdf文件。希望这能帮到你。

撰写回答