lxml xpath 爬取並正常顯示中文內容


 

在使用python爬蟲提取中文網頁的內容,為了能正確顯示中文的內容,在轉為字符串時一定要聲明編碼為utf-8,否則無法正常顯示中文,而是顯示原編碼的字符,並沒有正確轉換。比如下面這個簡單的爬取百度頁面的title的示例:

 

import os
import lxml
from urllib2 import urlopen # Mac
# from urllib.request import Request, urlopen # Win
from lxml import etree

hfile = urlopen('http://www.baidu.com').read()
tree = etree.HTML(hfile)
strs = tree.xpath( "//title")
strs = strs[0]
# strs = (etree.tostring(strs)) # 不能正常顯示中文
strs = (etree.tostring(strs, encoding = "utf-8", pretty_print = True, method = "html")) # 可以正常顯示中文
print (strs)

 

如果不在tostring函數中正確配置的話,會打印出:

<title>&#30334;&#24230;&#19968;&#19979;&#65292;&#20320;&#23601;&#30693;&#36947;</title>

 

而正確的應該是:

<title>百度一下,你就知道</title>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM