如何使用urllib2下载gzip文件而不损坏?
我正在写一个脚本,用来下载压缩过的XML网站地图;文件虽然能下载下来,但都是坏的。脚本输出的压缩文件比应该的稍大,而解压后的文件又比应该的要小,因为里面缺少了一些数据。你们觉得我哪里出错了?
saveAddress = "test.xml.gz"
import urllib2
import httplib
from urllib2 import Request, urlopen, URLError
try:
request = urllib2.Request("http://example.com/sitemap-general.xml.gz")
request.add_header('Accept-encoding', 'gzip')
request.add_header('User-agent', 'Custom UA String')
opener = urllib2.build_opener()
try:
pageText = opener.open(request).read()
open(saveAddress, "w").write(pageText)
print "Crawled successfully."
except URLError, e:
pass
except URLError, e:
pass
谢谢大家的帮助,真的很感激。
1 个回答
7
以二进制模式打开文件:
open(saveAddress, "wb").write(pageText)