2016-02-19 85 views
1

我正在编写一个Python脚本来自动下载某网站上托管的一些PDF页面(来自公共领域工作)。 不幸的是,单独的PDF页面中嵌入框架,当我用下面的:使用Python自动下载嵌入式PDF文件

import time, urllib 
for n in range(21,63): 
    time.sleep(2) 
    pdfPath="http://babel.hathitrust.org/cgi/imgsrv/download/pdf?id=wu.89038803698;orient=0;size=100;seq=%s;attachment=0"%(str(n)) 
    pdfName="Housner_"+str(n)+".pdf" 
    f = open(pdfName, 'w') 
    f.write(urllib.urlopen(pdfPath).read()) 
    f.close() 
    time.sleep(2) 

downlaoded文件实际上是空白,而Adobe显示错误,例如无效的图像,嵌入的字体等未找到。

任何人都可以好好建议我如何改进这个脚本,以便下载的PDF文件不是错误/损坏的。

谢谢。

+2

将'w'更改为'wb',因为pdf文件包含二进制数据。 –

+1

吨的感谢!它工作(并且特别感谢提醒二进制数据的PDF,人们必须使用'wb'而不是'w'。 –

回答

3

更换'w''wb'你正在写的二进制信息,如果它是非二元的。

f = open(pdfName,'wb') 

应该这样做。