xpath解析 最常用且最便捷高效的一種解析方式

2022-06-11 03:45:14 字數 1752 閱讀 4643

一、xpath解析原理:

二、環境的安裝:

三、如何例項化乙個etree物件from lxml.html import etree

1、將本地的html文件中的原始碼資料載入到etree物件中

etree.parse(filepath)

2、可以將從網際網路上獲取的原始碼資料載入到該物件中

etree.html('page_text')

3、xpath('xpath表示式')

四、xpath表示式

乙個斜槓 / 表示的是從根節點開始定位,表示的是乙個層級

兩個斜槓 //  表示的是多個層級,可以表示從任意位置開始定位

屬性定位:

/div[@class="

song

"] #

表示取到class為song的div,其中@是固定寫法#格式

tag[@attrname="

attrvallue

"]

索引定位:

//div[@class="

song

"]/p[3]

#表示取到class為song的div下的第三個p標籤

#注意:這裡的索引是從1開始的

取文字:

/text()  #

獲取的是標籤中直系的文字內容

xpath(

'//div[@class="tang"]//li[5]/a/text()

')[0]

#表示取到class為tang的div下的第五個li標籤中的a標籤的文字內容,因為型別是列表,需要加上[0]獲取到最終的文字

//text() #

獲取標籤中非直系的文字內容(所有的內容)

取屬性:

#

格式/@attrname

//div[@class="

tang

"]/img/@src

#表示獲取到class為tang的div下的img標籤的src屬性

#

爬取58二手房中的**資訊

import

requests

from lxml.html import

etree

if__name__ == '

__main__':

headers =

#爬取到頁面原始碼資料

url = '

'page_text = requests.get(url=url,headers=headers).text

#資料解析

tree =etree.html(page_text)

#儲存的就是li標籤物件

li_list = tree.xpath('

//ul[@class="house-list-wrap"]/li')

fp = open('

58.txt

','w

',encoding='

utf-8')

for li in

li_list:

#區域性解析

title = li.xpath('

./div[2]/h2/a/text()

')[0] #

.表示解析的原始碼的參照標籤

print

(title)

fp.write(title+'

\n')

Linux最基礎,最常用命令

1,檢視埠號 ps ef grep tomcat nginx 2,強制結束程序 kill s 9 查到的埠號 或直接 kill 9 查到的埠號 3,啟動tomcat 進入tomcat下的bin目錄 啟動 startup.sh 或 sh startup.sh 關閉 shutdown.sh 或 sh s...

linux最基礎,最最常用的命令

cd 返回當前使用者的根目錄 代表當前目錄 代表上一級目錄 mv 原檔名 重新命名後的檔名 cp test haha 複製 讀取test檔案全部 複製到 haha 方法一 cp r test hah 複製 讀取test檔案全部 複製到 haha 方法二 su 切換使用者 passdwd 修改當前使用...

VS2010 VS2017最常用且實用的外掛程式分享

生成及錯誤智慧型提示工具,對於新手來說是一款很不錯的產品,能大大提高 質量。個人最喜歡的就是linq 清理未使用的引用 自動生成類及屬性等。寫 時,如果多層巢狀後,很容易找不到哪個 對應,這個工具可以很好的幫你解決,會在兩個大括號之間加條虛線連線。此工具對使用vs連sqlserver開發的同學很實用...