python爬蟲基礎04 網頁解析庫xpath

2022-08-30 03:12:06 字數 1827 閱讀 5119

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']

Python爬蟲(三) 網頁解析

所需庫from bs4 import beautifulsoup專案 示例html askurl 獲取頁面html文字 soup beautifulsoup html,html.parser 使用html解析來處理html變數 變數名 item1 soup.find all article 匹配ar...

python爬蟲 五 網頁解析器

網頁解析器 是從網頁中提取有價值資料的工具 python 有四種網頁解析器 1 正規表示式 模糊匹配解析 2 html.parser 結構化解析 3 beautiful soup 結構化解析 4 lxml 結構化解析 其中 beautiful soup 功能很強大,有html.parse和 lxml...

python爬蟲專項(2) 網頁結構剖析

以豆瓣網為例 1 瀏覽器 谷歌瀏覽器 chrome 2 開啟開發者模式 右鍵 檢查 3 檢視源 右鍵 檢視網頁源 2.1 乙個簡單的框架圖 2.2 爬蟲基本邏輯 一 分頁網頁url採集 資料資訊網頁url採集 資料採集 該邏輯1個資料資訊網頁採集1條資料 第一步 分頁網頁url採集 得到乙個分頁的u...