python爬蟲中文不能正常顯示問題的解決

    最近作業要用到網站(http://nba.sports.sina.com.cn/players.php)中的數據,初次爬取,中文不能正常顯示。查找了很多資料,參考了很多例子。理論沒了解很多,但最終實現效果了。直接貼項目中實現的代碼:

import requests
import urllib.request
from lxml import etree
#要抓取的頁面鏈接
url='http://nba.sports.sina.com.cn/players.php'
r=requests.get(url)
r.encoding='gb2312'#解決中文不能正常顯示
s=etree.HTML(r.text)
result=etree.tostring(s)
file=s.xpath('//a/text()')
print(file)

上面是一段完整的代碼,網上很多時候給出了關鍵代碼,但個人認爲一些庫的使用還是挺重要的。

    本程序解決中文不能正常顯示問題重要用到r.encoding,本項目涉及的網站編碼方式爲“gb2312”(可通過查看源頁面的charset屬性獲取),故該處參數設置爲“gb2312”,經過嘗試設置爲“gbk”也可以,查找資料發現“gbk”包含全部中文字符在國家標準“gb2312”基礎上向後兼容“gb2312”的標準。但是,又想到“utf-8”包含全世界所有國家需要用到的字符,又嘗試修改爲“utf-8”,中文依舊沒能正常顯示,目前還沒弄懂原因,可能還是對編碼知識瞭解不夠多,希望大神們能夠多多指教~

注:“gbk”收入21886個漢字和圖形符號;“gb2312”標準共收錄6763個漢字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章