我正在尝试通过点击 URL 来下载 PDF。假设我的 URL 如下所示:http: //foo.bar/this/downloads/pdf
如果我直接点击 URL,浏览器会下载 PDF,没有问题。但是,如果我尝试使用urllib2.urlopen
我获取 PDF,我会得到一个不完整的文件。
url = "http://foo.bar/this/downloads/pdf"
sock = urllib2.urlopen(url)
content = sock.read()
with open('/tmp/test.pdf', 'w') as f:
f.write(content)
/tmp/test.pdf 的最后 3 行看起来像这样(在变量中看起来像这样content
):
0000778731 00000 n
0000778751 00000 n
000
但我从浏览器下载的实际文件如下所示:
0000778731 00000 n
0000778751 00000 n
0000778772 00000 n
...
%%EOF
每一个 PDF,无论大小,似乎都在这个最终的数字组合中的某个地方被切断了。
我尝试了以下解决方案,但都不起作用。urllib2
我认为原因与读取数据的方式无关,而是根本没有得到完整的响应这一事实。
可能是一个因素的另一件事(尽管我不确定)是 PDF 发送到浏览器的方式。据我所知,PDF 是使用 PHP x-sendfile 发送的。我只是对为什么部分下载 PDF 感到困惑。