最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python xpath表達(dá)式如何實(shí)現(xiàn)數(shù)據(jù)處理

 更新時間:2020年06月13日 15:53:24   作者:_夕顏  
這篇文章主要介紹了Python xpath表達(dá)式如何實(shí)現(xiàn)數(shù)據(jù)處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

xpath表達(dá)式

1. xpath語法

<bookstore>
<book>
 <title lang="eng">Harry Potter</title>
 <price>999</price>
</book>
<book>
 <title lang="eng">Learning XML</title>
 <price>888</price>
</book>
</bookstore>

1.1 選取節(jié)點(diǎn)

XPath 使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點(diǎn)或者節(jié)點(diǎn)集。這些路徑表達(dá)式和我們在常規(guī)的電腦文件系統(tǒng)中看到的表達(dá)式非常相似。

使用chrome插件選擇標(biāo)簽時候,選中時,選中的標(biāo)簽會添加屬性class="xh-highlight"

下面列出了最有用的表達(dá)式:

表達(dá)式 描述
nodename 選中該元素。
/ 從根節(jié)點(diǎn)選取、或者是元素和元素間的過渡。
// 從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),而不考慮它們的位置。
. 選取當(dāng)前節(jié)點(diǎn)。
.. 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。
@ 選取屬性。
text() 選取文本。

實(shí)例

路徑表達(dá)式 結(jié)果
bookstore 選擇bookstore元素。
/bookstore 選取根元素 bookstore。注釋:假如路徑起始于正斜杠( / ),則此路徑始終代表到某元素的絕對路徑!
bookstore/book 選取屬于 bookstore 的子元素的所有 book 元素。
//book 選取所有 book 子元素,而不管它們在文檔中的位置。
bookstore//book 選擇屬于 bookstore 元素的后代的所有 book 元素,而不管它們位于 bookstore 之下的什么位置。
//book/title/@lang 選擇所有的book下面的title中的lang屬性的值。
//book/title/text() 選擇所有的book下面的title的文本。

  • 選擇所有的h1下的文本
  • //h1/text()
  • 獲取所有的a標(biāo)簽的href
  • //a/@href
  • 獲取html下的head下的title的文本
  • /html/head/title/text()
  • 獲取html下的head下的link標(biāo)簽的href
  • /html/head/link/@href

1.2 查找特定的節(jié)點(diǎn)

路徑表達(dá)式 結(jié)果
//title[@lang="eng"] 選擇lang屬性值為eng的所有title元素
/bookstore/book[1] 選取屬于 bookstore 子元素的第一個 book 元素。
/bookstore/book[last()] 選取屬于 bookstore 子元素的最后一個 book 元素。
/bookstore/book[last()-1] 選取屬于 bookstore 子元素的倒數(shù)第二個 book 元素。
/bookstore/book[position()>1] 選擇bookstore下面的book元素,從第二個開始選擇
//book/title[text()='Harry Potter'] 選擇所有book下的title元素,僅僅選擇文本為Harry Potter的title元素
/bookstore/book[price>35.00]/title 選取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值須大于 35.00。

注意點(diǎn): 在xpath中,第一個元素的位置是1,最后一個元素的位置是last(),倒數(shù)第二個是last()-1

1.3 選取未知節(jié)點(diǎn)

XPath 通配符可用來選取未知的 XML 元素。

通配符 描述
* 匹配任何元素節(jié)點(diǎn)。
@* 匹配任何屬性節(jié)點(diǎn)。
node() 匹配任何類型的節(jié)點(diǎn)。

實(shí)例

在下面的表格中,我們列出了一些路徑表達(dá)式,以及這些表達(dá)式的結(jié)果:

路徑表達(dá)式 結(jié)果
/bookstore/* 選取 bookstore 元素的所有子元素。
//* 選取文檔中的所有元素。
//title[@*] 選取所有帶有屬性的 title 元素。

1.4 選取若干路徑

通過在路徑表達(dá)式中使用“|”運(yùn)算符,您可以選取若干個路徑。

實(shí)例

在下面的表格中,我們列出了一些路徑表達(dá)式,以及這些表達(dá)式的結(jié)果:

路徑表達(dá)式 結(jié)果
//book/title | //book/price 選取 book 元素的所有 title 和 price 元素。
//title | //price 選取文檔中的所有 title 和 price 元素。
/bookstore/book/title | //price 選取屬于 bookstore 元素的 book 元素的所有 title 元素,以及文檔中所有的 price 元素。

實(shí)例:

from lxml import etree
text = ''' <div> <ul> 
    <li class="item-1"><a href="link1.html" rel="external nofollow" >first item</a></li> 
    <li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li> 
    <li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li> 
    <li class="item-1"><a href="link4.html" rel="external nofollow" >fourth item</a></li> 
    <li class="item-0"><a href="link5.html" rel="external nofollow" >fifth item</a> 
    </ul> </div> '''

html = etree.HTML(text)

#獲取href的列表和title的列表
href_list = html.xpath("http://li[@class='item-1']/a/@href")
title_list = html.xpath("http://li[@class='item-1']/a/text()")


#組裝成字典
for href in href_list:
  item = {}
  item["href"] = href
  item["title"] = title_list[href_list.index(href)]
  print(item)

# 如果取到的是一個節(jié)點(diǎn),返回的是element對象,可以繼續(xù)使用xpath方法,對此我們可以在后面的數(shù)據(jù)提取過程中:先根據(jù)某個標(biāo)簽進(jìn)行分組,分組之后再進(jìn)行數(shù)據(jù)的提取
li_list = html.xpath("http://li[@class='item-1']")

#在每一組中繼續(xù)進(jìn)行數(shù)據(jù)的提取
for li in li_list:
  item = {}
  item["href"] = li.xpath("./a/@href")[0] if len(li.xpath("./a/@href"))>0 else None
  item["title"] = li.xpath("./a/text()")[0] if len(li.xpath("./a/text()"))>0 else None
  print(item)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python命令行運(yùn)行報錯ModuleNotFoundError:No module named‘XXX‘找不到自定義模塊

    python命令行運(yùn)行報錯ModuleNotFoundError:No module named‘X

    這篇文章主要介紹了python命令行運(yùn)行報錯ModuleNotFoundError:No module named‘XXX‘找不到自定義模塊問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用Python獲取愛奇藝電視劇彈幕數(shù)據(jù)的示例代碼

    使用Python獲取愛奇藝電視劇彈幕數(shù)據(jù)的示例代碼

    這篇文章主要介紹了用Python獲取愛奇藝電視劇彈幕數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • python繪制雪景圖

    python繪制雪景圖

    這篇文章主要為大家詳細(xì)介紹了python繪制雪景圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Python線程池模塊ThreadPoolExecutor用法分析

    Python線程池模塊ThreadPoolExecutor用法分析

    這篇文章主要介紹了Python線程池模塊ThreadPoolExecutor用法,結(jié)合實(shí)例形式分析了Python線程池模塊ThreadPoolExecutor的導(dǎo)入與基本使用方法,需要的朋友可以參考下
    2018-12-12
  • Python Tkinter簡單布局實(shí)例教程

    Python Tkinter簡單布局實(shí)例教程

    這篇文章主要介紹了Python Tkinter簡單布局實(shí)例教程,包括了填充、左右布局、絕對布局、網(wǎng)格布局等,需要的朋友可以參考下
    2014-09-09
  • Python讀寫JSON文件的操作詳解

    Python讀寫JSON文件的操作詳解

    JSON數(shù)據(jù)類型最常用的應(yīng)用場景就是API或?qū)?shù)據(jù)保存到 .json穩(wěn)當(dāng)數(shù)據(jù)中。使用Python處理這些數(shù)據(jù)會變得非常簡單,本文將詳細(xì)講解Python如何讀寫JSON文件的,需要的可以參考一下
    2022-04-04
  • PyTorch中apex安裝方式和避免踩坑

    PyTorch中apex安裝方式和避免踩坑

    本文主要介紹了PyTorch中apex安裝方式和避免踩坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn)

    pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn)

    這篇文章主要介紹了pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • python打印帶時間的日志實(shí)現(xiàn)代碼

    python打印帶時間的日志實(shí)現(xiàn)代碼

    python的logging模塊提供了標(biāo)準(zhǔn)的日志接口,可以通過它存儲各種格式的日志,下面這篇文章主要給大家介紹了關(guān)于python打印帶時間的日志的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 三個Python自動化辦公好用到爆的模塊分享

    三個Python自動化辦公好用到爆的模塊分享

    本文小編來給大家推薦幾個在自動化辦公領(lǐng)域當(dāng)中非常好用的Python模塊,可以幫助大家在工作當(dāng)中及大地提高效率,避免重復(fù)機(jī)械化地操作流程
    2022-07-07

最新評論

云浮市| 平乐县| 正镶白旗| 通化市| 桦南县| 绍兴市| 嘉峪关市| 华池县| 平湖市| 乐东| 宣恩县| 黎平县| 滨海县| 平遥县| 同江市| 闽侯县| 永济市| 山西省| 定日县| 齐河县| 石台县| 定州市| 监利县| 舒城县| 麻城市| 夹江县| 左云县| 柞水县| 江油市| 怀化市| 绿春县| 临颍县| 东港市| 安康市| 潼南县| 榆树市| 府谷县| 辉南县| 永清县| 平湖市| 奉化市|