使用python爬取網頁數據,str.decode('utf-8')以後,結果出現了好多亂碼。 python
æŸæœ‰é™å…¬å¸æµåŠ¨èµ„金需求500万元(事隔很久了,好像不是這個段編碼了)
在查看了十六進制編碼後發現工具
C3 A6 C5 B8 C2 90 C3 A6 C5 93 E2 80 B0 C3 A9 E2 84 A2 C2 90 C3 A5 E2 80 A6 C2 AC C3 A5 C2 8F C2 B8 C3 A6 C2 B5 C2 81 C3 A5 C5 A0 C2 A8 C3 A8 C2 B5 E2 80 9E C3 A9 E2 80 A1 E2 80 98 C3 A9 C5 93 E2 82 AC C3 A6 C2 B1 E2 80 9A 35 30 30 C3 A4 C2 B8 E2 80 A1 C3 A5 E2 80 A6 C6 92 20 2D 20 C3 A9 C2 A1 C2 B9 C3 A7 E2 80 BA C2 AE C3 A8 C2 AF C2 A6 C3 A6 C6 92 E2 80 A6 20 2D 20 C3 A9 E2 80 A1 E2 80 98 C3 A5 C2 AE C2 9D C3 A4 C2 BF C2 9D C3 A5 C2 B9 C2 B3 C3 A5 C2 8F C2 B0
發現其中存在衆多c2 c3等字符,考慮是編碼問題。網站
網上搜了一下發現是由於網站使用了Latin-1(ISO-8859-1)編碼後,經過爬蟲抓取頁面文件後,便會造成utf-8編碼的字符,這樣初始字符串便被進行了二次編碼。單純使用decode('utf-8')便獲得了Latin-1編碼後的字符,然後,再以utf-8顯示,就會出現上述問題了(p.s. 此處要區分字符串的編碼和文本工具顯示字符集的區別,字符串編碼爲按照某種特定格式造成的二進制值,文本工具的字符集則是要文本工具以何種編碼規範顯示某種編碼後的字符串)。編碼
解決方法很簡單,再對字符串進行一次解碼便可:code
str.decode('utf-8').decode('Latin-1')
就會正確顯示字符串以下:utf-8
重慶某有限公司流動資金需求500萬元