Python爬蟲基于lxml解決數(shù)據(jù)編碼亂碼問(wèn)題
lxml是python的一個(gè)解析庫(kù),支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高
XPath,全稱XML Path Language,即XML路徑語(yǔ)言,它是一門在XML文檔中查找信息的語(yǔ)言,它最初是用來(lái)搜尋XML文檔的,但是它同樣適用于HTML文檔的搜索
XPath的選擇功能十分強(qiáng)大,它提供了非常簡(jiǎn)明的路徑選擇表達(dá)式,另外,它還提供了超過(guò)100個(gè)內(nèi)建函數(shù),用于字符串、數(shù)值、時(shí)間的匹配以及節(jié)點(diǎn)、序列的處理等,幾乎所有我們想要定位的節(jié)點(diǎn),都可以用XPath來(lái)選擇
XPath于1999年11月16日成為W3C標(biāo)準(zhǔn),它被設(shè)計(jì)為供XSLT、XPointer以及其他XML解析軟件使用,更多的文檔可以訪問(wèn)其官方網(wǎng)站:https://www.w3.org/TR/xpath/
問(wèn)題狀況:
response = requests.get(url=url, headers=headers).text
html = etree.HTML(response)
name = html.xpath("/html/body/div[2]/ul/li[1]/a/p/text()")[0]
print(name)
可以正常獲取數(shù)據(jù),但是結(jié)果是
å·²éªè¯ å®å ¨ ç¾ç
這樣子的亂碼
解決方法:
name = html.xpath("/html/body/div[2]/ul/li[1]/a/p/text()")[0].encode('ISO-8859-1').decode('UTF-8')
這邊的UTF-8根據(jù)網(wǎng)頁(yè)編碼情況而定
看網(wǎng)頁(yè)編碼情況
F12

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python數(shù)據(jù)提取-lxml模塊
- Python 解析簡(jiǎn)單的XML數(shù)據(jù)
- Python xml、字典、json、類四種數(shù)據(jù)類型如何實(shí)現(xiàn)互相轉(zhuǎn)換
- Python 讀取xml數(shù)據(jù),cv2裁剪圖片實(shí)例
- Python大數(shù)據(jù)之使用lxml庫(kù)解析html網(wǎng)頁(yè)文件示例
- Python 3.x基于Xml數(shù)據(jù)的Http請(qǐng)求方法
- Python基于dom操作xml數(shù)據(jù)的方法示例
- 詳細(xì)解讀Python中解析XML數(shù)據(jù)的方法
- python與xml數(shù)據(jù)的交互詳解
相關(guān)文章
Python3批量移動(dòng)指定文件到指定文件夾方法示例
這篇文章主要給大家介紹了關(guān)于Python3批量移動(dòng)指定文件到指定文件夾的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python3具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
python中的opencv和PIL(pillow)轉(zhuǎn)化操作
這篇文章主要介紹了python中的opencv和PIL(pillow)轉(zhuǎn)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python實(shí)現(xiàn)讀取json文件到excel表
這篇文章主要介紹了Python實(shí)現(xiàn)讀取json文件到excel表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Python多進(jìn)程與服務(wù)器并發(fā)原理及用法實(shí)例分析
這篇文章主要介紹了Python多進(jìn)程與服務(wù)器并發(fā)原理及用法,深入淺出的介紹了進(jìn)程、并行、并發(fā)、同步、異步等相關(guān)概念與原理,并結(jié)合實(shí)例形式給出了Python多進(jìn)程編程相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
Pycharm運(yùn)行加載文本出現(xiàn)錯(cuò)誤的解決方法
今天小編就為大家分享一篇Pycharm運(yùn)行加載文本出現(xiàn)錯(cuò)誤的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
python實(shí)現(xiàn)數(shù)字炸彈游戲程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)數(shù)字炸彈游戲程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
使用Python內(nèi)置的模塊與函數(shù)進(jìn)行不同進(jìn)制的數(shù)的轉(zhuǎn)換
這篇文章主要介紹了使用Python內(nèi)置的模塊與函數(shù)進(jìn)行不同進(jìn)制的數(shù)的轉(zhuǎn)換的方法,Python也使得讀取純二進(jìn)制文件內(nèi)容非常方便,需要的朋友可以參考下2016-03-03

