如何使用urllib2下载gzip文件而不损坏?

3 投票
1 回答
1885 浏览
提问于 2025-04-17 08:48

我正在写一个脚本,用来下载压缩过的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)

撰写回答