日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

[python3 - TroubleShooting] requests爬取中文网站后直接print,以及保存csv乱码

發(fā)布時間:2024/9/5 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [python3 - TroubleShooting] requests爬取中文网站后直接print,以及保存csv乱码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題:

  • page = requests.get().text返回的中文不管是直接print,還是保存進csv都出現(xiàn)了亂碼

背景:

  • 我爬取的網(wǎng)站head里定義了charset=utf-8
  • 本地windows系統(tǒng)默認(rèn)編碼是gbk

嘗試:

  • 直接print page; 寫入csv文件的時候, 不指定編碼
    • writerow()報錯 -?UnicodeEncodeError: 'gbk' codec can't encode character '\xe6' in position 0: illegal multibyte sequence
  • 直接print page; 寫入csv文件的時候,encoding='gbk'
    • 報錯同上
  • 直接print page; 寫入csv文件時,encoding='utf-8'
    • print/csv亂碼1
  • page.encode('utf-8').decode('gbk') - 對page進行utf-8編碼后用gbk解碼
    • print/csv亂碼1
  • page.encode('gbk','ignore').decode('gbk');寫入csv時,encoding='gbk' - 對page進行g(shù)bk編碼后用gbk解碼
    • print/csv亂碼2
  • page.encode('gbk','ignore').decode('gbk');寫入csv時,encoding='utf-8' - 對page進行g(shù)bk編碼后用gbk解碼
    • print亂碼2/csv亂碼3
  • page.encode(resquests.get().encoding).decode('gbk'); 寫入csv時,encoding='utf-8'
    • print正常顯示/csv亂碼4
  • page.encode(resquests.get().encoding).decode('gbk'); 寫入csv時,encoding='gbk'
    • 都正常顯示
  • page.encode(resquests.get().encoding).decode('gbk'); 寫入csv時,不指定編碼
    • 都正常顯示
  • 結(jié)論:

    • 不要自己想網(wǎng)頁是用什么編碼,直接用requests.get()返回的編碼,我這個例子中的網(wǎng)站其實用的是ISO-8859-1編碼。。。
    • csv寫入的時候,默認(rèn)編碼就是windows的編碼,也就是說一般中文系統(tǒng)的電腦,要寫入中文的話,不需要指定encoding

    轉(zhuǎn)載于:https://www.cnblogs.com/break-dawnn/p/9044075.html

    總結(jié)

    以上是生活随笔為你收集整理的[python3 - TroubleShooting] requests爬取中文网站后直接print,以及保存csv乱码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。