更簡單高效的HTML資料提取 Xpath

2022-06-13 07:39:12 字數 1827 閱讀 2312

xpath 是一門在 xml 文件中查詢資訊的語言。xpath 用於在 xml 文件中通過元素和屬性進行導航。

相比於beautifulsoupxpath在提取資料時會更加的方便。

在python中很多庫都有提供xpath的功能,但是最基本的還是lxml這個庫,效率最高。在之前beautifulsoup章節中我們也介紹到了lxml是如何安裝的。

pip install lxml

xpath 使用路徑表示式在 xml 文件中選取節點。節點是通過沿著路徑或者 step 來選取的。

我們將用以下的html文件來進行演示:

html_doc = '''

​head>​​

everyday italiantitle>

giada de laurentiisauthor>

2005year>

30.00price>

book>

​harry pottertitle>

j k. rowlingauthor>

2005year>

29.99price>

book>

​xquery kick starttitle>

james mcgovernauthor>

per bothnerauthor>

kurt cagleauthor>

james linnauthor>

vaidyanathan nagarajanauthor>

2003year>

49.99price>

book>

​learning xmltitle>

erik t. rayauthor>

2003year>

39.95price>

book>

​bookstore>

body>

​html>'''

from lxml import etree

​page = etree.html(html_doc)

表示式描述

nodename

選取此節點的子節點。

/從根節點擊取。

//從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置。

.選取當前節點。

..選取當前節點的父節點。

@選取屬性。

表示式結果

nodename[1]

選取第乙個元素。

nodename[last()]

選取最後乙個元素。

nodename[last()-1]

選取倒數第二個元素。

nodename[position()<3]

選取前兩個子元素。

nodename[@lang]

選取擁有名為 lang 的屬性的元素。

nodename[@lang='eng']

選取擁有lang屬性,且值為 eng 的元素。

萬用字元描述

*匹配任何元素節點。

@*匹配任何屬性節點。

通過在路徑表示式中使用「|」運算子,您可以選取若干個路徑。

in [1]: page.xpath('//book[1]/title/text() | //book[1]/author/text()')

out[1]: ['everyday italian', 'giada de laurentiis']

健身管理,讓管理更高效更簡單

捷徑健身管理系統4.0新版上線,無數次打磨,只為更好地滿足使用者需求,公升級會員體驗,快來跟隨小健一起去認識下這些超讚功能!多店通卡 01一般連鎖的健身俱樂部在推銷健身卡時為了給會員營造超高價效比的印象,方便轉化成交,會特意強調 連鎖通卡 的概念。承諾只要顧客辦了健身卡,就可以自由出入旗下所用的健身...

提取資料表中資料生成html

1.在做辦公自動化的時候,通常會遇到這樣的問題,需要從資料庫中提取資料.生成html語句 2.傳送htm到郵件中去 public static dataset getdataset string strcommandstring,string strtablename 取得ds using syst...

解析html之lxml包,提取html的資料

解析html之lxml包 1 lxml的安裝 安裝方式 pip install lxml 2 lxml的使用 2.1 lxml模組的入門使用 匯入lxml 的 etree 庫 匯入沒有提示不代表不能用 from lxml import etree 利用etree.html,將字串轉化為element...