使用python进行不完整的文件下载

时间:2013-02-19 04:22:20

标签: python urllib2

我有以下python代码:

import urllib2
DIR = '/home/aaron/Desktop/aaron-file/media/'
LOC = DIR+'/'+bounty.title+'.mp3'

u = urllib2.urlopen(url, 'rb')
localFile = open(LOC, 'wb')
localFile.write(u.read())
localFile.close()
u.close()

它只创建小(大约60kb文件),文件操作正确接受突然停止。当我从firefox下载(复制并粘贴相同的URL)时,我会得到完整大小的文件(大约2mb)。

我正在运行32位ubuntu。

更新: 我认为这可能是一个问题,http内容长度不准确。那我怎么会忽略/设定不同的长度。

感谢。

1 个答案:

答案 0 :(得分:1)

也许您正在下载的服务器拒绝urllib2默认用户代理。考虑使用伪用户代理标头构建自定义开启器,如下所示:

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]

并使用opener()代替urllib2.urlopen()