爬蟲 xpath語法

2021-10-03 21:41:43 字數 1733 閱讀 3595

使用//獲取整個頁面當中的元素,然後寫標籤名,然後再寫謂詞進行提取。比如:

//div[@class='abc']
/和//的區別:/代表只獲取直接子節點。//獲取子孫節點。一般//用得比較多。當然也要視情況而定。

contains:有時候某個屬性中包含了多個值,那麼可以使用contains函式。示例**如下:

//div[contains(@class,'job_detail')]

謂詞中的下標是從1開始的,不是從0開始的。

解析html字串:使用lxml.etree.html進行解析。示例**如下:

htmlelement = etree.html(text)

print

(etree.tostring(htmlelement,encoding=

'utf-8'

).decode(

"utf-8"

))

解析html檔案:使用lxml.etree.parse進行解析。示例**如下:

htmlelement = etree.parse(

"tencent.html"

)print

(etree.tostring(htmlelement, encoding=

'utf-8'

).decode(

'utf-8'

))

這個函式預設使用的是xml解析器,所以如果碰到一些不規範的html**的時候就會解析錯誤,這時候就要自己建立html解析器。

parser = etree.htmlparser(encoding=

'utf-8'

)htmlelement = etree.parse(

"lagou.html"

,parser=parser)

print

(etree.tostring(htmlelement, encoding=

'utf-8'

).decode(

'utf-8'

))

使用xpath語法。應該使用element.xpath方法。來執行xpath的選擇。示例**如下:
trs = html.xpath(

"//tr[position()>1]"

)

xpath函式返回來的永遠是乙個列表。

2. 獲取某個標籤的屬性:

python href = html.xpath("//a/@href") # 獲取a標籤的href屬性對應的值

3. 獲取文字,是通過xpath中的text()函式。示例**如下:

python address = tr.xpath("./td[4]/text()")[0]

4. 在某個標籤下,再執行xpath函式,獲取這個標籤下的子孫元素,那麼應該在斜槓之前加乙個點,代表是在當前元素下獲取。示例**如下:

python address = tr.xpath("./td[4]/text()")[0]

Python爬蟲 Xpath語法筆記

一 選取節點 常用的路勁表示式 表示式描述 例項nodename 選取nodename節點的所有子節點 xpath div 選取了div節點的所有子節點 從根節點擊取 xpath div 從根節點上選取div節點 選取所有的當前節點,不考慮他們的位置 xpath div 選取所有的div節點 選取當...

Python爬蟲 Xpath語法筆記

一 選取節點 常用的路勁表示式 表示式描述 例項nodename 選取nodename節點的所有子節點 xpath div 選取了div節點的所有子節點 從根節點擊取 xpath div 從根節點上選取div節點 選取所有的當前節點,不考慮他們的位置 xpath div 選取所有的div節點 選取當...

python爬蟲 xpath解析語法

xpath 是一門在xml或者html文件中導航查詢資訊的語法,對html有很好的支援 xpath 是乙個w3c的標準 xpath 包含標準庫 2.1節點擊擇 表示式 nodename nodename 選取此節點的所有子節點 從根節點擊取 div 選取所有div子元素,而不考慮他們的位置 選取當前...