Как скачать gzip файлы, используя urllib2, не повреждая их? - PullRequest
2 голосов
/ 22 декабря 2011

Я пишу скрипт для загрузки сжатых карт сайта 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 Ответ

6 голосов
/ 22 декабря 2011

Открыть файл в двоичном режиме:

open(saveAddress, "wb").write(pageText)
...