lxml中etree的簡單用法

2021-10-05 04:16:44 字數 1916 閱讀 8263

在lxml包的__init__模組中雖然沒有etree,但貌似不影響使用,我的版本是:python3.7,lxml4.5.0

from lxml import etree 

from lxml.html import etree #兩種方式在用法上沒什麼區別

h=etree.html(response.text)

#response.text是網頁的原始碼

h.xpath(

'//img'

)#尋找所有的img結點,

h.xpath(

'//div'

).xpath(

'.//img'

)#尋找所有div下的所有img結點

符號

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

表示式描述

/從根節點擊取

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

.選取當前節點。

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

@選取屬性。

|在兩個中結點中選擇

()用()來包含|

*包含所有元素

not取反

例項

路徑表示式

結果bookstore

選取 bookstore 元素的所有子節點。

/bookstore

選取根元素 bookstore。注釋:假如路徑起始於正斜槓( / ),則此路徑始終代表到某元素的絕對路徑!

bookstore/book

選取屬於 bookstore 的子元素的所有 book 元素。

//book

選取所有 book 子元素,而不管它們在文件中的位置。

bookstore//book

選擇屬於 bookstore 元素的後代的所有 book 元素,而不管它們位於 bookstore 之下的什麼位置。

//@lang

選取名為 lang 的所有屬性。

//*[@class]

選取帶有class屬性的所有元素

//div[@*]

匹配任意屬性的div元素

//a[not(@class)]

匹配沒有class屬性的a元素

謂語

帶謂語的路徑表示式

路徑表示式

結果/bookstore/book[1]

選取屬於 bookstore 子元素的第乙個 book 元素。

/bookstore/book[last()]

選取屬於 bookstore 子元素的最後乙個 book 元素。

/bookstore/book[last()-1]

選取屬於 bookstore 子元素的倒數第二個 book 元素。

/bookstore/book[position()< 3]

選取最前面的兩個屬於 bookstore 元素的子元素的 book 元素。

//title[@lang]

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

//title[@lang=『eng』]

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

/bookstore/book[price>35.00]

選取 bookstore 元素的所有 book 元素,且其中的 price 元素的值須大於 35.00。

/bookstore/book[price>35.00]/title

選取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值須大於 35.00。

mysql的簡單用法 mysql簡單用法

刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...

Python之lxml模組的etree類的使用

lxml的安裝與etree類的匯入 將html字串轉化為element物件,且elment物件的方法 element物件的xptah方法 安裝方式 在終端cmd下利用pip命令安裝即可 保證網路暢通 pip install lxml element物件是xpath語法的使用物件,element物件可...

Python之lxml模組的etree類的使用

lxml的安裝與etree類的匯入 將html字串轉化為element物件,且elment物件的方法 element物件的xptah方法 安裝方式 在終端cmd下利用pip命令安裝即可 保證網路暢通 pip install lxml element物件是xpath語法的使用物件,element物件可...