python處理經過gzip壓縮的網頁內容


 

Python在進行網頁抓取時,有時會獲取到經過gzip壓縮后的數據(體積小,傳輸快),導致無法閱讀和使用。

如圖所示,為http原始報文。可以看到,header區域的“Content-Encoding: gzip”標明了正文是經過gzip壓縮后的數據,而body區域藍色框里面的數據即是gzip的數據源(至於body區域其它額外的字符,可能是一些輔助標記,這里不做關心)。

至於為什么我們從瀏覽器打開網頁時是可讀的文字,是因為瀏覽器自動幫我們進行了解壓。

 

那么,如何通過編程方式進行gzip解壓呢?幸運的是,python標准庫zlib自帶了gzip格式的解壓相關函數。

如下圖所示,通過python自帶的zlib包,即可完成對壓縮數據的解壓。

 

至於最后的那個參數為何是“zlib.MAX_WBITS+16”,是因為zlib不是單純用來處理gzip的,gzip的數據格式決定了要使用這個值;也就是說如果zlib處理其它的壓縮格式,這個值就會變化。

參考下文:

http://stackoverflow.com/questions/1838699/how-can-i-decompress-a-gzip-stream-with-zlib

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM