Python操作lxml庫(kù)之基礎(chǔ)使用篇
一、lxml庫(kù)概述
1、lxml庫(kù)介紹
lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的數(shù)據(jù);lxml和正則一樣,也是用C語(yǔ)言實(shí)現(xiàn)的,是一款高性能的python HTML、XML解析器,也可以利用XPath語(yǔ)法,來(lái)定位特定的元素及節(jié)點(diǎn)信息。
2、lxml庫(kù)特點(diǎn)
HTML是超文本標(biāo)記語(yǔ)言,主要用于顯示數(shù)據(jù),他的焦點(diǎn)是數(shù)據(jù)的外觀
XML是可擴(kuò)展標(biāo)記語(yǔ)言,主要用于傳輸和存儲(chǔ)數(shù)據(jù),他的焦點(diǎn)是數(shù)據(jù)的內(nèi)容
3、lxml庫(kù)的安裝
windows系統(tǒng)下,在cmd命令提示框中,輸入如下命令
pip install lxml
在cmd命令行驗(yàn)證是否安裝成功。若引入模塊,不返回錯(cuò)誤則說(shuō)明安裝成功。
二、基本使用
1、lxml.etree
在爬蟲(chóng)代碼采集過(guò)程中,通過(guò)etree.HTML直接將字符串實(shí)例轉(zhuǎn)化為element對(duì)象。
import requests from lxml import etree res = requests.get("http://www.jsons.cn/zt/") html = res.text root_element = etree.HTML(html) print(root_element) print(root_element.tag)
2、解析HTML網(wǎng)頁(yè)
#解析HTML字符串 from lxml import etree text = ''' <html><body> <div class="key"> <div class="name">無(wú)羨</div> <div class="age">20</div> <div class="address">四川</div> </div> </body></html> ''' # 開(kāi)始初始化 html = etree.HTML(text) # 這里需要傳入一個(gè)html形式的字符串 print(html) print(type) # 將字符串序列化為html字符串 result = etree.tostring(html).decode('utf-8') print(result) print(type(result))
3、讀取并解析HTML文件
from lxml import etree # 將html文件進(jìn)行讀取 html = etree.parse('1.html') # 將html內(nèi)容序列化 result = etree.tostring(html).decode('utf-8') print(result) print(type(result)) html = etree.HTML(result) # 這里需要傳入一個(gè)html形式的字符串 print(html) print(type)
三、lxml使用流程
1、 導(dǎo)入模塊
from lxml import etree
2、創(chuàng)建解析對(duì)象
調(diào)用 etree 模塊的 HTML() 方法來(lái)創(chuàng)建 HTML 解析對(duì)象。
parse_html = etree.HTML(html)
HTML() 方法能夠?qū)?HTML 標(biāo)簽字符串解析為 HTML 文件,該方法可以自動(dòng)修正 HTML 文本。
from lxml import etree html_str = ''' <div> <ul> <li class="item1"><a href="link1.html">Python</a></li> <li class="item2"><a href="link2.html">Java</a></li> <li class="site1"><a href="c.biancheng.net">C語(yǔ)言中文網(wǎng)</a> <li class="site2"><a href="www.baidu.com">百度</a></li> <li class="site3"><a href="www.jd.com">京東</a></li> </ul> </div> ''' html = etree.HTML(html_str) result = etree.tostring(html) print(result.decode('utf-8'))
四、lxml庫(kù)數(shù)據(jù)提取
1、提取所有a標(biāo)簽內(nèi)的文本信息
from lxml import etree # 創(chuàng)建解析對(duì)象 parse_html=etree.HTML(html) # 書(shū)寫(xiě)xpath表達(dá)式,提取文本最終使用text() xpath_bds='//a/text()' # 提取文本數(shù)據(jù),以列表形式輸出 r_list=parse_html.xpath(xpath_bds) # 打印數(shù)據(jù)列表 print(r_list)
2、獲取所有href的屬性值
from lxml import etree # 創(chuàng)建解析對(duì)象 parse_html=etree.HTML(html) # 書(shū)寫(xiě)xpath表達(dá)式,提取文本最終使用text() xpath_bds='//a/@href' # 提取文本數(shù)據(jù),以列表形式輸出 r_list=parse_html.xpath(xpath_bds) # 打印數(shù)據(jù)列表 print(r_list)
3、不匹配href=" www.biancheng.net/priduct"
from lxml import etree # 創(chuàng)建解析對(duì)象 parse_html=etree.HTML(html) # 書(shū)寫(xiě)xpath表達(dá)式,提取文本最終使用text() xpath_bds='//a/@href' # 提取文本數(shù)據(jù),以列表形式輸出 xpath_bds='//ul[@id="sitename"]/li/a/@href' # 打印數(shù)據(jù)列表 print(r_list)
總結(jié)
到此這篇關(guān)于Python操作lxml庫(kù)之基礎(chǔ)使用篇的文章就介紹到這了,更多相關(guān)Python操作lxml庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python批量合成bilibili的m4s緩存文件為MP4格式 ver2.5
這篇文章主要介紹了python批量合成bilibili的m4s緩存文件為MP4格式 ver2.5的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12循環(huán)神經(jīng)網(wǎng)絡(luò)TextRNN實(shí)現(xiàn)情感短文本分類(lèi)任務(wù)
這篇文章主要為大家介紹了循環(huán)神經(jīng)網(wǎng)絡(luò)TextRNN實(shí)現(xiàn)情感短文本分類(lèi)任務(wù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04淺談Python中的可變對(duì)象和不可變對(duì)象
下面小編就為大家?guī)?lái)一篇淺談Python中的可變對(duì)象和不可變對(duì)象。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07如何在Python?中使用?join()?函數(shù)把列表拼接成一個(gè)字符串
這篇文章主要介紹了如何在Python?中使用?join()?函數(shù)把列表拼接成一個(gè)字符串,文章圍繞?join()?函數(shù)的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對(duì)你有幫助2022-03-03解決python3 urllib 鏈接中有中文的問(wèn)題
今天小編就為大家分享一篇解決python3 urllib 鏈接中有中文的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python @property原理解析和用法實(shí)例
這篇文章主要介紹了Python @property原理解析和用法實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02詳解Python中數(shù)據(jù)類(lèi)型的轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了Python中數(shù)據(jù)類(lèi)型轉(zhuǎn)換的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下2023-03-03python實(shí)現(xiàn)簡(jiǎn)單的文字識(shí)別
這篇文章主要為大家詳細(xì)介紹了基于百度云文字識(shí)別API,python實(shí)現(xiàn)的簡(jiǎn)單文字識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11