爬蟲xpath介紹以及基本用法

2021-10-05 23:12:41 字數 2451 閱讀 4733

import requests

from lxml import etree

text =

'''

'''html=etree.html(text)

# 將上述字串解析為html文件,構造xpath的解析物件

result=etree.tostring(html)

# 這裡是將html文件進行完成的修正

print

(result.decode(

'utf-8'))

# 輸出結果會自動補全htnl完成格式

="item-0"

>

"link1.html"

>first item<

/a>

<

/li>

="item-1"

>

"link2.html"

>second item<

/a>

<

/li>

="item-inactive"

>

"link3.html"

>third item<

/a>

<

/li>

="item-1"

>

"link4.html"

>fourth item<

/a>

<

/li>

="item-0"

>

"link5.html"

>fifth item<

/a>

<

/li>

<

/ul>

<

/div>

<

/body>

<

/html>

from lxml import etree

html=etree.parse(

'./text.html'

,etree.htmlparser())

#讀取html文件並構建xpath解析物件

result=etree.tostring(html)

print

(result.decode(

'utf-8'))

#輸出結果跟上面基本吻合,會有一些亂碼現象,但是都會補上缺失的li標籤

路徑表示式

描述/bookstore/book[1]

選取bookstore下的第乙個子元素

/bookstore/book[last()]

選取bookstore下的倒數第二個book元素。

bookstore/book[position()❤️]

選取bookstore下前面兩個子元素。

//book[@price]

選取擁有price屬性的book元素

//book[@price=10]

選取所有屬性price等於10的book元素

import requests

from lxml import etree

from html.parser import htmlparser

defqiyuan_splder()

: header=

seed_url=

''result=requests.get(seed_url,headers=header)

html=etree.html(result.text)

response=html.xpath(

'//div[@class="nostyle"]/ul/li/a/text()'

)print

(response)

with

open

('wocaonima.txt'

,'w'

,encoding=

'utf-8'

)as aa:

for i in response:

text=

str(i)

aa.write(text+

'\n'

)if __name__ ==

'__main__'

: qiyuan_splder(

)

1.上訴**,首先需要匯入requests請求**相關的庫和lxml

2.requests中的get方法獲得**的請求文字,這是就需要用到etree中的html類將文字進行初始化,轉為html格式,以便使用xpath進行解析提取相關資訊

3.根據xpath相關節點的路徑表示式進行資訊的提取,但是會發現提取的結果是乙個列表形式的element物件,如果想要提取相關的資訊,則只需要在相關路徑後面再加上 /text()即可

4,檔案寫入,對上述提取的資訊列表進行for 迴圈遍歷

text本上就是字串型別,text+『\n』 就可以完成換行寫入檔案

Xpath基本用法

my listr tree findnodes as string ul id brand li a class bd 可以利用正規表示式來過濾。程式設計中經常會用到xml,net framework提供了專門對xml進行處理的dll,裡面提供了很多對xml處理的方法,在這裡簡單介紹一下xpath的...

Xpath基本用法

定位地圖 driver.find element by xpath text 地圖 多重定位 driver.find element by xpath text 新聞 and name tj trnews 模糊文字查詢 contains text hao 模糊匹配某個屬性 contains name...

python 爬蟲之xpath用法

xpath全稱為xml path language一種小型的查詢語言,在爬蟲中,我們其實就是拿它來搜尋html文件,僅此而已。而網頁內容只有通過解析才能進行搜尋,所以使用xpath時,需要引入lxml庫,這個庫就是來解析網頁,協助xpath進行搜尋的。lxml庫的安裝,可以直接使用 pip3 ins...