python 處理抓取網頁亂碼

2021-09-09 01:26:15 字數 574 閱讀 4608

相信用python的人一定在抓取網頁時,被編碼問題弄暈過一陣

前幾天寫了乙個測試網頁的小指令碼,並查詢是否包含指定的資訊。

在html = urllib2.open(url).read()  時,列印到控制台始終出現亂碼。

一般的解決辦法就是html.decode('utf-8').encode('gb2312'),不過這個即使用了,也沒能解決我的問題

這裡有兩個問題,第乙個你要知道網頁的編碼格式是utf-8     第二你得確定你的系統是gb2312的,能不能主動獲取網頁的編碼格式,並主動獲取系統編碼格式,像這樣

網頁編碼 = 獲取網頁編碼

系統編碼 = 獲取系統編碼

html.decode(網頁編碼).encode(系統編碼)  即使我不知道網頁編碼,系統編碼,只要雙方能轉 ,就行。

網頁編碼 = re.complier('正則獲取meta裡的編碼格式')

系統編碼 =  sys.getfilesystemencoding()  ########關鍵的關鍵

html.decode(網頁編碼).encode(系統編碼)   現在列印,一切正常了。我才不管系統什麼編碼,只要你能轉。

Python抓取網頁

在python中,使用urllib2這個元件來抓取網頁。coding utf 8 urllib2是python的乙個獲取urls uniform resource locators 的元件。import urllib2 它以urlopen函式的形式提供了乙個非常簡單的介面 response urll...

Python網頁抓取

coding utf 8 import urllib 匯入模組 print dir urllib 檢視urllib方法 print help urllib.urlopen 檢視幫助文件 url 定義 html urllib.urlopen url 開啟url print html.read urlo...

python抓取網頁過程

準備過程 1.抓取網頁的過程 準備好http請求 http request 提交對應的請求 獲得返回的響應 http response 獲得網頁原始碼 2.get還是post 3.headers 可選 在某些情況下,直接抓取是被禁止的,此時需要提供乙個headers來告訴對方我不是機械人 例如 1 ...