檢視網頁是否壓縮gzip+編碼方式

Pop_Rain發表於2017-06-12

一、檢視網頁是否壓縮gzip

req = urllib.request.Request(url)
html = urllib.request.urlopen(req)
print(html.info().get('Content-Encoding'))  #print(html.info())能檢視更多資訊

二、檢視網頁編碼方式

在學習Python爬取網頁的時候,我們經常會遇到編碼方式的困擾,為了解決這個編碼方式的問題,首先是要獲取網頁的編碼方式,下面就獲取網頁的編碼方式重點說一下三種方法。

一, 使用chardet模組(python3自己實現,親測成功)

import chardet 
import urllib.request

data = urllib.request.urlopen('http://www.baidu.com').read()
chardit = chardet.detect(data)
print (chardit['encoding'])

在工作中進行以下實現:

import urllib.request
import chardet  #用於獲取網頁編碼方式

urls = open("f:/1.txt") #從1.txt取urls資料
for url in urls:    
    request = urllib.request.Request(url)  
    response = urllib.request.urlopen(request)
    data = response.read()
    chardit = chardet.detect(data) #chardit為獲取網頁編碼相關資訊的字典
    rule = chardit["encoding"]
    if rule:
        print(rule)
    else:
        print("error!沒有獲得網頁編碼格式資訊")

二, 使用urllib模組的getparam方法

import urllib
fopen1 = urllib.urlopen('http://www.baidu.com').info()
print fopen1.getparam('charset')# baidu

三, 利用BeautifulSoup模組方法

>from bs4 import BeautifulSoup
>import urllib2
>content=urllib2.urlopen(url)#這裡url是你需要獲取的網頁
>soup=BeautifulSoup(content)
>print soup.original_encoding #這裡的輸出就是網頁的編碼方式
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

這裡爬取網頁內容出現的亂碼問題,可以參考部落格文章

這裡獲取網頁html內容,可以參考部落格文章

轉載自:http://blog.csdn.net/winterto1990/article/details/47658887

相關文章