Python爬蟲基于lxml解決數(shù)據(jù)編碼亂碼問題
lxml是python的一個(gè)解析庫(kù),支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高
XPath,全稱XML Path Language,即XML路徑語言,它是一門在XML文檔中查找信息的語言,它最初是用來搜尋XML文檔的,但是它同樣適用于HTML文檔的搜索
XPath的選擇功能十分強(qiáng)大,它提供了非常簡(jiǎn)明的路徑選擇表達(dá)式,另外,它還提供了超過100個(gè)內(nèi)建函數(shù),用于字符串、數(shù)值、時(shí)間的匹配以及節(jié)點(diǎn)、序列的處理等,幾乎所有我們想要定位的節(jié)點(diǎn),都可以用XPath來選擇
XPath于1999年11月16日成為W3C標(biāo)準(zhǔn),它被設(shè)計(jì)為供XSLT、XPointer以及其他XML解析軟件使用,更多的文檔可以訪問其官方網(wǎng)站:https://www.w3.org/TR/xpath/
問題狀況:
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)頁編碼情況而定
看網(wǎng)頁編碼情況
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)頁文件示例
- 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)文章
PyQt5 對(duì)圖片進(jìn)行縮放的實(shí)例
今天小編就為大家分享一篇PyQt5 對(duì)圖片進(jìn)行縮放的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06python 網(wǎng)絡(luò)編程要點(diǎn)總結(jié)
Python 提供了兩個(gè)級(jí)別訪問的網(wǎng)絡(luò)服務(wù):低級(jí)別的網(wǎng)絡(luò)服務(wù)支持基本的 Socket,它提供了標(biāo)準(zhǔn)的 BSD Sockets API,可以訪問底層操作系統(tǒng) Socket 接口的全部方法。高級(jí)別的網(wǎng)絡(luò)服務(wù)模塊SocketServer, 它提供了服務(wù)器中心類,可以簡(jiǎn)化網(wǎng)絡(luò)服務(wù)器的開發(fā)。下面看下該如何使用2021-06-06Python多線程采集二手房源數(shù)據(jù)信息流程詳解
這篇文章主要介紹了Python多線程采集二手房源數(shù)據(jù)信息流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-05-05Pycharm pyuic5實(shí)現(xiàn)將ui文件轉(zhuǎn)為py文件,讓UI界面成功顯示
這篇文章主要介紹了Pycharm pyuic5實(shí)現(xiàn)將ui文件轉(zhuǎn)為py文件,讓UI界面成功顯示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04python tkinter實(shí)現(xiàn)定時(shí)關(guān)機(jī)
這篇文章主要為大家詳細(xì)介紹了python tkinter實(shí)現(xiàn)定時(shí)關(guān)機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04Python實(shí)現(xiàn)五子棋聯(lián)機(jī)對(duì)戰(zhàn)小游戲
本文主要介紹了通過Python實(shí)現(xiàn)簡(jiǎn)單的支持聯(lián)機(jī)對(duì)戰(zhàn)的游戲——支持局域網(wǎng)聯(lián)機(jī)對(duì)戰(zhàn)的五子棋小游戲。廢話不多說,快來跟隨小編一起學(xué)習(xí)吧2021-12-12Python faker生成器生成虛擬數(shù)據(jù)代碼實(shí)例
這篇文章主要介紹了Python faker生成器生成虛擬數(shù)據(jù)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07解決ImportError:cannot import name ‘Flatten‘&nb
這篇文章主要介紹了解決ImportError:cannot import name ‘Flatten‘ from ‘torch.nn‘問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06