1. 程式人生 > >python爬蟲中文不能正常顯示問題的解決

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個漢字。