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
在爬蟲代碼采集過(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>
'''
# 開始初始化
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) # 書寫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) # 書寫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) # 書寫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)文章
PyTorch中的神經(jīng)網(wǎng)絡(luò) Mnist 分類任務(wù)
這篇文章主要介紹了PyTorch中的神經(jīng)網(wǎng)絡(luò) Mnist 分類任務(wù),在本次的分類任務(wù)當(dāng)中,我們使用的數(shù)據(jù)集是 Mnist 數(shù)據(jù)集,這個(gè)數(shù)據(jù)集大家都比較熟悉,需要的朋友可以參考下2023-03-03
總結(jié)Pyinstaller的坑及終極解決方法(小結(jié))
這篇文章主要介紹了總結(jié)Pyinstaller的坑及終極解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
python正則表達(dá)式re.sub各個(gè)參數(shù)的超詳細(xì)講解
Python 的 re 模塊提供了re.sub用于替換字符串中的匹配項(xiàng),下面這篇文章主要給大家介紹了關(guān)于python正則表達(dá)式re.sub各個(gè)參數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
解決pip?install報(bào)錯(cuò):Cannot?connect?to?proxy問(wèn)題
這篇文章主要介紹了解決pip?install報(bào)錯(cuò):Cannot?connect?to?proxy問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Python+Selenium實(shí)現(xiàn)瀏覽器標(biāo)簽頁(yè)的切換
在實(shí)際工作中,我們經(jīng)常會(huì)遇到頁(yè)面切換的情況。就比如當(dāng)點(diǎn)擊了某個(gè)功能的按鈕后,瀏覽器出現(xiàn)了新的標(biāo)簽頁(yè),需要在這些標(biāo)簽頁(yè)之間進(jìn)行切換。本文將利用Selenium實(shí)現(xiàn)這一功能,需要的可以參考一下2022-06-06
python?windows安裝cuda+cudnn+pytorch教程
這篇文章主要介紹了python?windows安裝cuda+cudnn+pytorch教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Python實(shí)現(xiàn)隨機(jī)生成任意數(shù)量車牌號(hào)
這篇文章主要介紹了Python實(shí)現(xiàn)隨機(jī)生成任意數(shù)量車牌號(hào),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01

