python亂碼問題之爬蟲篇

2022-01-16 10:46:53 字數 971 閱讀 5495

使用下面的**有的時候會報錯,說什麼gbk無法解碼...,原因是output的預設編碼跟隨系統,utf-8的字元gbk有可能不認識於是報錯

from urllib.request import request

from urllib.request import urlopen

url = ''

data = none

headers = {}

req = request(url, data, headers)

resp = urlopen(req)

print(resp.read().decode('utf-8'))

import sys

print(sys.getdefaultencoding()) #utf-8

替換掉不能解析的字元

設定stdout的編碼

import io  

import sys

import urllib.request

res=urllib.request.urlopen('')

htmlbytes=res.read()

print(htmlbytes.decode('utf-8'))

永久性修改python預設編碼

import sys

print(sys.setdefaultencoding()) #utf-8

print有坑就算了,writelines寫入檔案也報這個gbk無法編碼的問題

解決辦法:

//設定編碼就搞定了

html=open(line,'w',encoding='utf-8')

### 總結

這些編碼問題其實是一些函式在使用時使用了預設的編碼,相應的傳入和改變其使用的編碼就搞定了。

python亂碼問題之爬蟲篇

使用下面的 有的時候會報錯,說什麼gbk無法解碼.原因是output的預設編碼跟隨系統,utf 8的字元gbk有可能不認識於是報錯 from urllib.request import request from urllib.request import urlopen url data none ...

python爬蟲亂碼問題

使用爬蟲爬取網頁文字 所有中文文字全是亂碼,如圖 源網頁編碼和爬取下來後的編碼格式不一致。如源網頁為gbk編碼的位元組流,而我們抓取下後程式直接使用utf 8進行編碼並輸出到儲存檔案中,這必然會引起亂碼 即當源網頁編碼和抓取下來後程式直接使用處理編碼一致時,則不會出現亂碼 此時再進行統一的字元編碼也...

Python爬蟲解決亂碼問題

問題原因 爬取的所有網頁無論何種編碼格式,都轉化為utf 8格式進行儲存,與源 編碼格式不同所以出現亂碼。目前大部分都是utf 8格式,一部分是gbk格式或者 會出現亂碼 還有一些不常見的,比如windows 1254,utf 8 sig等這裡不做討論。國內網頁還沒有看到別的編碼格式,歡迎補充指正!...