Löscht Python urllib2 automatisch Gzip-Daten von der Webseite?
Ich bin mit
data=urllib2.urlopen(url).read()
Möchte ich wissen:
-
Wie kann ich feststellen, ob die Daten an eine URL ist Gzip?
-
Tut urllib2 automatisch Dekomprimieren der Daten, wenn es ist Gzip? Werden die Daten immer ein string sein?
InformationsquelleAutor der Frage mlzboy | 2010-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese überprüft, ob der Inhalt gzipped und dekomprimiert es:
Nicht. Die urllib2 nicht automatisch Dekomprimieren der Daten, da die 'Accept-Encoding" - header ist nicht von der urllib2 aber durch Sie mit:
request.add_header('Accept-Encoding','gzip, deflate')
InformationsquelleAutor der Antwort ars
Wenn du redest über ein einfaches
.gz
Datei, Nein, urllib2 wird nicht decodiert werden, wird die unverändert.gz
- Datei als Ausgabe.Wenn Sie sprechen über die automatische HTTP-level-Komprimierung mit
Content-Encoding: gzip
oderdeflate
ist, muss bewusst werden, verlangt der AUFTRAGGEBER die Verwendung einerAccept-Encoding
header.urllib2 nicht diesen header, so die Antwort, die er erhält zurück, werden nicht komprimiert. Sie können sicher Holen Sie die Ressource, ohne sich sorgen über die Komprimierung (wenn da die Komprimierung nicht unterstützt den Antrag kann länger dauern).
InformationsquelleAutor der Antwort bobince
Ihre Frage beantwortet worden ist, aber für eine umfassende Umsetzung, werfen Sie einen Blick auf Mark Pilgrim Umsetzung dieseres deckt gzip, deflate, safe URL-parsing und vieles, vieles mehr, für einen weit verbreiteten RSS-parser, aber dennoch eine nützliche Referenz.
InformationsquelleAutor der Antwort RuiDC