爬蟲編碼問題

環(huán)境

python版本: 3.5.0
編輯器: vscode,用code runner插件運(yùn)行
抓取網(wǎng)頁(yè):新浪首頁(yè)

代碼

import requests
main_url = 'http://www.sina.com.cn/'
res = requests.get(main_url)
res.encoding = 'utf-8'
print(res.text)

運(yùn)行結(jié)果


用cmd窗口的運(yùn)行出現(xiàn)同樣的錯(cuò)誤

問題:

UnicodeEncodeError: 'gbk' codec can't encode character '\xa5' in position 68196: illegal multibyte sequence

信息

網(wǎng)頁(yè)編碼: utf-8
windows默認(rèn)編碼: GBK
python3默認(rèn)編碼:utf-8
vscode文件編碼:utf-8

分析

windows cmd默認(rèn)編碼是GBK
GBK無(wú)法解析有些utf-8的字符
vscode runner可能不支持打印有些utf-8的字符
查找vscode code runner插件github發(fā)現(xiàn)下面鏈接
https://github.com/formulahendry/vscode-code-runner/issues/25
結(jié)論:vscode code runner目前無(wú)法支持utf-8

解決

vscode code runner無(wú)法支持utf-8,能否讓cmd窗口支持utf-8呢
查找到結(jié)果
http://www.cnblogs.com/QQParadise/articles/1685177.html
修改cmd窗口的代碼頁(yè)
執(zhí)行下面命令
chcp 65001
將cmd窗口編碼設(shè)置位utf-8,運(yùn)行剛才的代碼,打印正常,問題解決
修改完代碼頁(yè)后,會(huì)發(fā)現(xiàn)cmd窗口設(shè)置字體的地方多了幾個(gè)字體,將字體設(shè)置為Consolas,窗口也變漂亮很多

等待vscode code runner下一個(gè)版本支持utf-8

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評(píng)論 19 139
  • 字符集和編碼簡(jiǎn)介 在編程中常??梢砸姷礁鞣N字符集和編碼,包括ASCII,MBCS,Unicode等字符集。確切的說...
    蘭山小亭閱讀 9,081評(píng)論 0 13
  • error code(錯(cuò)誤代碼)=0是操作成功完成。error code(錯(cuò)誤代碼)=1是功能錯(cuò)誤。error c...
    Heikki_閱讀 3,538評(píng)論 1 9
  • 編碼問題一直困擾著開發(fā)人員,尤其在 Java 中更加明顯,因?yàn)?Java 是跨平臺(tái)語(yǔ)言,不同平臺(tái)之間編碼之間的切換...
    x360閱讀 2,580評(píng)論 1 20
  • 每天閱讀一小時(shí)。 p42-p62 廣告是一種在事實(shí)基礎(chǔ)上進(jìn)行的商業(yè)宣傳。——p54 我們應(yīng)該以一種藝術(shù)的方式,利用...
    page2閱讀 626評(píng)論 0 0

友情鏈接更多精彩內(nèi)容