python爬蟲筆記02--xpath


1、語法
表達式 語法
nodename 選取此節點的所有子節點
/ 從根節點選取
// 任意子孫節點,不考慮位置
. 當前節點
. . 當前節點的父節點
@ 選取屬性
* 匹配任何節點
contains(@屬性,”包含的內容”) 模糊查詢
text() 取文本內容
2、使用案例
<bookstore>
	<book>
		  <title class="tit alive" lang="eng">Harry Potter</title>
		  <price>29.99</price>
	</book>
	<book>
		  <title class="tit" lang="eng">Learning XML</title>
		  <price>39.95</price>
	</book>
</bookstore>
表達式 結果
/bookstore/book[1] 選取屬於 bookstore 子元素的第一個 book 元素。(xpath索引從1開始)
/bookstore/book[last()] 選取屬於 bookstore 子元素的最後一個 book 元素。
/bookstore/book[position() < 3] 選取最前面的兩個屬於 bookstore 元素的子元素的 book 元素。
//title[@lang] 選取所有擁有名爲 lang 的屬性的 title 元素。
//title[@class=‘tit’] 選取所有class屬性值爲tit的 title 元素,(第一個不會被選中,因爲class值爲“tit alive”)
//title[contains(@class,“tit”)] 選取class屬性值包含“tit”的title元素,兩個title都會被選中
/bookstore/book[price>35.00] 選取 bookstore 元素下的所有 book 元素,且其中的 price 元素的值須大於 35.00。
//title/text() 選取所有title元素的文本內容
//title/@lang 選取所有title元素的lang屬性
3、在python中使用xpath
# 1.導包
from lxml import etree as le
# 2.準備好str類型的文本對象
html = '......'
# 3.把str對象加載成xpath對象
html_x = le.HTML(html)
# 4.使用xpath表達式,ret的結果爲列表
ret = html_x.xpath('xpath表達式')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章