2

我有以下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 内容长度不准确的问题。那么我将如何忽略/设置不同的长度。

谢谢。

4

1 回答 1

1

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

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

并使用opener()而不是urllib2.urlopen()

于 2013-02-19T07:40:44.437 回答