xpath的使用(新手必看)

2021-10-08 11:36:26 字數 2430 閱讀 4027

步驟:

1.從lxml中匯入etree(兩種方式)

第一種:

from lxml import etree
注意:第一種方式,可能etree下方會出現紅線,但是不影響使用

第二種:

from lxml import html

etree = html.etree

str = 	'' \

'' \

'' \

'harry potter' \

'29.99' \

'' \

'' \

'learning xml' \

'39.95' \

'' \

'' \

''

2.etree.html()將字串轉換成html元素物件(必須進行),可以自動補全缺失的標籤

html = etree.html(str)

print(html) #

3. 使用xpath進行資料提取

xpath是根據路徑表示式來查詢元素的,返回值是乙個列表

如果沒有找到,返回的是乙個空列表

比如:f:\python夏令營

xpath路徑分為兩種:

第一種:/如果作為開頭,代表的是根路徑,如果是在路徑裡面寫,代表一層一層的查詢

找到bookstore元素

bookstore = html.xpath('/html/bookstore')

print(bookstore) # -> 沒有找到

boostore = html.xpath('/html/body/booktore')

print(bookstore)

第二種://代表任意路徑

找到bookstore元素

bookstore = html.xpath('//body/bookstore')  

print(bookstore) #

例如:獲取book元素

book = html.xpath('//book')

print(book) # [, ]

text()獲取標籤之間的內容

例如:獲取title標籤的內容

步驟:

title = html.xpath('//book/title')

print(title) # [, ]

title1 = html.xpath('//book/title/text()')

print(title1) # ['harry potter', 'learning xml']

str = 	'' \

'' \

'' \

'harry potter' \

'29.99' \

'' \

'' \

'learning xml' \

'39.95' \

'' \

'' \

''html = etree.html(str)

謂語:

如果條件是屬性:需要使用@關鍵字

例如:獲取lang屬性為eng的title標籤之間的內容

title = html.xpath('//book/title[@lang="eng"]/text()')

print(title) # ['learning xml']

str = 	'' \

'' \

'' \

'harry potter' \

'29.99' \

'' \

'' \

'learning xml' \

'39.95' \

'' \

'' \

''html = etree.html(str)

獲取屬性的值:/@+屬性名

例如:獲取所有title標籤href屬性的值

步驟:

title = html.xpath('//book/title/@href')

print(title) #['']

CSS 的簡寫 新手必看

1.顏色的簡寫 十六進製制形式 如 rrggbb rgb函式值形式 如 rgb x,x,x x 有兩種寫法,一種是0程式設計客棧 255之間整數,另一種是百分號形式 如 20 顏色名稱 如 red green 使用者系統色盤值 如windowtext background 2.單位值的省略 當數值為...

新手學PHP必看

1.概要 學習任何語言都需要多看 多想 多寫 多問!寫程式設計是一種熟能生巧的東西!學習php也一樣,因為知識就那麼多,你看多了就會覺得怎麼都一樣。程式設計師就是炒冷飯的,一遍又一遍。多敲幾遍就可以閉著眼睛寫了,所以企業招聘都會問你寫過多少行 的!程式設計師最忌諱浮躁,有時候發現一段程式完全找不出錯...

新手學習Docker必看

1.為什麼要學docker 答 避免一種情況 我的機器上可以執行,為什麼你的不可以?很多時候,我們想把自己的程式拿給別人執行,別人往往直接拷貝過來是不可以直接用的,甚至怎麼改 怎麼修改環境都用不了,那怎麼辦?docker就是為了解決這個尷尬而出現的。2.docker的作用 答 a.解決執行環境不一致...