国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【實(shí)用 Python 庫】使用 XPath 與 lxml 模塊在 Python 中高效解析 XML 與 HTML

這篇具有很好參考價(jià)值的文章主要介紹了【實(shí)用 Python 庫】使用 XPath 與 lxml 模塊在 Python 中高效解析 XML 與 HTML。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在今天的信息時(shí)代,數(shù)據(jù)無處不在,從網(wǎng)絡(luò)爬蟲到數(shù)據(jù)挖掘,從文本處理到數(shù)據(jù)分析,我們時(shí)常需要從結(jié)構(gòu)化文檔中提取有用的信息。XPath 是一門強(qiáng)大的查詢語言,它可以在 XML 與 HTML 等文檔中定位特定的元素與數(shù)據(jù)。而在 Python 中,lxml 模塊為我們提供了一種高效解析 XML 與 HTML 的工具,讓我們能夠輕松地利用 XPath 進(jìn)行數(shù)據(jù)提取與處理。

什么是 XPath?

XPath(XML Path Language)是一門用于在 XML 文檔中導(dǎo)航和選擇元素的查詢語言。它使用路徑表達(dá)式來定位文檔中的節(jié)點(diǎn),類似于文件系統(tǒng)路徑。XPath 不僅僅是用于 XML,還可以應(yīng)用于 HTML 文檔等結(jié)構(gòu)化數(shù)據(jù)。XPath 的語法靈活而強(qiáng)大,能夠根據(jù)元素的層次結(jié)構(gòu)、屬性、文本內(nèi)容等條件來精確定位目標(biāo)節(jié)點(diǎn)。

lxml 模塊簡介

lxml 是一個(gè)功能強(qiáng)大且高效的 Python 庫,用于處理 XML 與 HTML 文檔。它是基于 C 語言的 libxml2libxslt 庫構(gòu)建的,因此具有出色的性能。通過 lxml,我們可以將文檔解析為一個(gè)樹狀結(jié)構(gòu),并使用 XPath 表達(dá)式從中提取所需的信息。

安裝 lxml

在開始之前,我們需要確保已經(jīng)安裝了 lxml。如果還未安裝,可以使用以下命令進(jìn)行安裝:

pip install lxml

基本的 XPath 查詢

讓我們從一個(gè)簡單的 XML 文檔開始,看看如何使用 XPath 來選擇節(jié)點(diǎn)??紤]以下 XML 文檔:

<bookstore>
  <book>
    <title>Python Programming</title>
    <author>John Doe</author>
  </book>
  <book>
    <title>Web Development Basics</title>
    <author>Jane Smith</author>
  </book>
</bookstore>

我們想要選擇所有書籍的標(biāo)題,可以使用以下 XPath 表達(dá)式:

//title

lxml 中,我們可以這樣來實(shí)現(xiàn):

from lxml import etree

# 解析 XML
xml = """
<bookstore>
  <book>
    <title>Python Programming</title>
    <author>John Doe</author>
  </book>
  <book>
    <title>Web Development Basics</title>
    <author>Jane Smith</author>
  </book>
</bookstore>
"""

root = etree.fromstring(xml)

# 使用 XPath 查詢
titles = root.xpath('//title')

for title in titles:
    print(title.text)

運(yùn)行上述代碼,你將會(huì)得到兩本書的標(biāo)題:

Python Programming
Web Development Basics

使用 XPath 選擇屬性與文本內(nèi)容

XPath 不僅可以用于選擇元素本身,還可以選擇元素的屬性和文本內(nèi)容。考慮以下 XML 文檔:

<student>
  <name first="John" last="Doe" />
  <age>25</age>
</student>

如果我們想要選擇姓名的姓氏和年齡,可以這樣做:

//name/@last
//age/text()

在代碼中的應(yīng)用如下:

xml = """
<student>
  <name first="John" last="Doe" />
  <age>25</age>
</student>
"""

root = etree.fromstring(xml)

last_name = root.xpath('//name/@last')[0]
age = root.xpath('//age/text()')[0]

print(f"Last Name: {last_name}")
print(f"Age: {age}")

運(yùn)行代碼,你將會(huì)看到輸出:

Last Name: Doe
Age: 25

使用 XPath 的謂語(Predicates)

XPath 還支持謂語,它允許我們在選擇節(jié)點(diǎn)時(shí)添加條件過濾??紤]以下 XML 文檔:

<students>
  <student>
    <name>John Doe</name>
    <age>25</age>
  </student>
  <student>
    <name>Jane Smith</name>
    <age>22</age>
  </student>
</students>

如果我們只想選擇年齡大于 23 歲的學(xué)生,可以這樣使用謂語:

//student[age > 23]

在代碼中,我們可以這樣做:

xml = """
<students>
  <student>
    <name>John Doe</name>
    <age>25</age>
  </student>
  <student>
    <name>Jane Smith</name>
    <age>22</age>
  </student>
</students>
"""

root = etree.fromstring(xml)

selected_students = root.xpath('//student[age > 23]')

for student in selected_students:
    name = student.xpath('name/text()')[0]
    age = student.xpath('age/text()')[0]
    print(f"Name: {name}, Age: {age}")

運(yùn)行代碼,你將會(huì)得到年齡大于 23 歲的學(xué)生信息:

Name: John Doe, Age: 25

結(jié)語

XPath 是一個(gè)強(qiáng)大的工具,結(jié)合 lxml 模塊,我們可以輕松地在 Python 中實(shí)現(xiàn)高效的 XML 與 HTML 解析與數(shù)據(jù)提取。本文介紹了基本的 XPath 查詢語法以及如何使用 lxml 模塊進(jìn)行解析與操作。XPath 的語法豐富多樣,允許我們根據(jù)需要精確地定位和提取所需的信息,為數(shù)據(jù)處理帶來了極大的便利。無論是從網(wǎng)頁中提取數(shù)據(jù)、分析 XML 配置文件,還是進(jìn)行數(shù)據(jù)挖掘,XPath 與 lxml 都將是你的得力工具。文章來源地址http://www.zghlxwxcb.cn/news/detail-687321.html

到了這里,關(guān)于【實(shí)用 Python 庫】使用 XPath 與 lxml 模塊在 Python 中高效解析 XML 與 HTML的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • lxml&xpath一站式教學(xué)

    lxml&xpath一站式教學(xué)

    XPath 是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進(jìn)行遍歷。它最初是用來搜尋 XML 文檔的,現(xiàn)在它同樣適用于 HTML 文檔的搜索 XPath 的選擇功能十分強(qiáng)大,它提供了非常簡潔明了的路徑選擇表達(dá)式 。 另外,它還提供了超過100 個(gè)內(nèi)建函數(shù),用于字

    2023年04月21日
    瀏覽(33)
  • Python爬蟲解析工具之xpath使用詳解

    Python爬蟲解析工具之xpath使用詳解

    爬蟲抓取到整個(gè)頁面數(shù)據(jù)之后,我們需要從中提取出有價(jià)值的數(shù)據(jù),無用的過濾掉。這個(gè)過程稱為 數(shù)據(jù)解析 ,也叫 數(shù)據(jù)提取 。數(shù)據(jù)解析的方式有多種,按照 網(wǎng)站數(shù)據(jù)來源 是靜態(tài)還是動(dòng)態(tài)進(jìn)行分類,如下: 動(dòng)態(tài)網(wǎng)站: 字典取值 。動(dòng)態(tài)網(wǎng)站的數(shù)據(jù)一般都是JS發(fā)過來的,基本

    2024年02月12日
    瀏覽(22)
  • Python爬蟲——解析插件xpath的安裝及使用

    Python爬蟲——解析插件xpath的安裝及使用

    目錄 1.安裝xpath 2.安裝lxml的庫 3.xpath基本語法 4.案例一:獲取百度網(wǎng)站的百度一下字樣 5.案例二:爬取站長素材網(wǎng)上的前十頁照片 打開谷歌瀏覽器 --?點(diǎn)擊右上角小圓點(diǎn) --?更多工具 --?擴(kuò)展程序 ?下載xpath壓縮包,下載地址:阿里云盤分享 把壓縮包解壓到指定目錄 --?選擇加

    2024年02月02日
    瀏覽(26)
  • Python使用XPath解析HTML:從入門到精通

    Python使用XPath解析HTML:從入門到精通

    XPath是一種用于選擇XML文檔中節(jié)點(diǎn)的語言,它可以通過路徑表達(dá)式來定位節(jié)點(diǎn)。由于HTML文檔的結(jié)構(gòu)與XML文檔類似,XPath也可以用于解析HTML文檔。Python是一種非常流行的編程語言,它提供了許多庫用于解析HTML文檔。本文將介紹Python中使用XPath解析HTML文檔的方法和技巧。 XPath表達(dá)

    2024年02月03日
    瀏覽(27)
  • [Java學(xué)習(xí)日記]日志、類加載器、XML、DTD與schema、XML解析、XPath、單元測試、Assert、BeforeAfter、注解、自定義注解、注解案例

    [Java學(xué)習(xí)日記]日志、類加載器、XML、DTD與schema、XML解析、XPath、單元測試、Assert、BeforeAfter、注解、自定義注解、注解案例

    下面的案例中只是做一個(gè)簡單的了解,不做深入理解啦 目錄 一.使用Logback寫日志 二.類加載器 三.XML 四.XML編寫規(guī)定:DTD與schema 五.XML解析 六.XPath 七.單元測試 七.Assert(斷言):檢驗(yàn)方法結(jié)果 八.使用before與after注解備份與還原數(shù)據(jù) 九.注解 十.自定義注解 十一.注解案例:用注

    2024年02月04日
    瀏覽(29)
  • XPath:學(xué)習(xí)使用XPath語法提取HTML/XML文檔中的數(shù)據(jù)使用語法

    以下是一些XPath語法示例,用于提取HTML/XML文檔中的數(shù)據(jù): 選擇元素: 選擇所有p元素: //p 選擇根元素: / 屬性匹配: 選擇class屬性為\\\"example\\\"的div元素: //div[@class=\\\'example\\\'] 文本內(nèi)容提取: 提取所有a元素的文本內(nèi)容: //a/text() 提取第一個(gè)p元素的文本內(nèi)容: //p[1]/text() 使用邏輯

    2024年02月11日
    瀏覽(29)
  • 使用lxml解析本地html文件報(bào)錯(cuò)?

    使用 lxml 中的 parse 方法讀取本地 html 文件報(bào)錯(cuò),遇到這種問題該怎么解決呢? 報(bào)錯(cuò): 根據(jù)報(bào)錯(cuò)信息,看起來是在解析HTML文件時(shí)出現(xiàn)了語法錯(cuò)誤。具體錯(cuò)誤是在test.html文件的第83行,link標(biāo)簽的開啟和結(jié)束標(biāo)簽不匹配。 這個(gè)錯(cuò)誤可能是由于HTML文件本身存在語法問題導(dǎo)致的。你

    2024年02月04日
    瀏覽(20)
  • 在線會(huì)計(jì)軟件推薦:高效實(shí)用的選擇解析

    在線會(huì)計(jì)軟件推薦:高效實(shí)用的選擇解析

    如果您始終在密切關(guān)注Zoho,您一定知道,我們的軟件在一個(gè)接一個(gè)的增加,為的是構(gòu)建出一套可以全面在線協(xié)作、提升業(yè)務(wù)生產(chǎn)力的應(yīng)用系統(tǒng),我們始終致力于為各類企業(yè)構(gòu)建完整的業(yè)務(wù)應(yīng)用,以便他們在Zoho上運(yùn)行整個(gè)業(yè)務(wù)系統(tǒng)。 有什么好用的在線會(huì)計(jì)軟件? Zoho從來沒有

    2024年02月09日
    瀏覽(20)
  • 編碼技巧:如何在Golang中高效解析和生成XML

    編碼技巧:如何在Golang中高效解析和生成XML

    在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的編程世界中,有效地處理各種數(shù)據(jù)格式是每個(gè)開發(fā)人員必備的技能之一。其中,XML(可擴(kuò)展標(biāo)記語言)作為一種廣泛使用的標(biāo)記語言,它的靈活性和可擴(kuò)展性使其在配置文件、網(wǎng)絡(luò)服務(wù)以及跨平臺(tái)數(shù)據(jù)交換中占據(jù)重要地位。然而,對于剛接觸Golang的開發(fā)者來

    2024年01月16日
    瀏覽(18)
  • python爬蟲數(shù)據(jù)解析xpath

    python爬蟲數(shù)據(jù)解析xpath

    下載地址:百度網(wǎng)盤 請輸入提取碼 第一步: 下載好文件后會(huì)得到一個(gè)沒有擴(kuò)展名的文件,重命名該文件將其改為.rar或者.zip等壓縮文件,解壓之后會(huì)得到一個(gè).crx文件和一個(gè).pem文件。新建一個(gè)文件夾,將這兩個(gè)文件放在該文件夾(本人將其命名為xpath-helper)內(nèi)。 第二步: 將

    2024年02月10日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包