爬蟲第二章(資料解析之xpath)

2021-10-24 21:58:59 字數 2857 閱讀 3148

xpath

b4正規表示式

本次主要介紹xpath表示式

from lxml import etree

import parsel

html_str=

"""

="item1"

>

"link1.html"

>

1<

/a>

<

/li>

="item2"

>

"link1.htm2"

>

2<

/a>

<

/li>

="item3"

>

"link1.htm3"

>

3<

/a>

<

/li>

="item4"

>

"link1.htm4"

>

4<

/a>

<

/li>

="item5"

>

"link1.htm5"

>

5<

/a>

<

/li>

<

/ul>

<

/div>

"""# 轉換資料型別

data=parsel.

selector

(html_str)

# 能夠把缺失的標籤補充完整

# 新增extract把物件中的資料統統顯示出來

# 2.解析資料

# (1)從根節點開始,獲取所有標籤

# result = data.

xpath

('/html/body/div/ul/li/a').

extract()

# print

(result)

# (2)跨節點獲取所有a標籤

# result0=data.

xpath

('//a').

extract()

# print

(result0)

# (3# result1=data.

xpath

('//ul'

)# result2=result1.

xpath

('./li').

extract()

# result3=result1.

xpath

('./li/a').

extract()

# print

(result2)

# print

(result3)

# (4)選取當前節點的父節點的屬性../

#常見的標籤屬性 class

id href tag src title

# result=data.

xpath

('//a'

)# result4=result.

xpath

('../@class').

extract()

# print

(result4)

# (5)獲取第三個li標籤的節點

# result=data.

xpath

('//li[3]').

extract

()# 索引從1開始

# print

(result)

# result=data.

xpath

('//li/a').

extract

()# 列表從0開始

# print

(result[2]

) # (6)通過定位屬性的方法獲取第四個a標籤

# result=data.

xpath

('//a[@href="link1.htm4"]').

extract()

# print

(result)

# (7) 通過定位標籤,獲取第四個a標籤包裹的文字

# result=data.

xpath

('//a[@href="link1.htm5"]/text()')[

0].extract()

# print

(result)

# (8)獲取第五個a標籤的href屬性值

# result=data.

xpath

('//li[5]/a/@href').

extract()

# print

(result)

#了解模糊查詢

# result=data.

xpath

('//li[contains(@class,"ite")]').

extract()

# print

(result)

#同時獲取多個標籤,在路徑表示式中使用「|」運算子

#同時獲取li標籤的屬性和a標籤的文字

# result=data.

xpath

('//li/@class|//a/text()').

extract()

# print

(result)

#小結#1.xpath的概述xpath解析查詢提取資訊的語言

#2.xpath的節點關係:根節點,子節點,同級節點

#3.xpath的重點語法在於獲取任意節點://

#4.xpath的重點語法根據屬性獲取節點:標籤[@屬性=

'值']

#5.xpath獲取節點的文字:

text()

#6.xpath獲取節點的屬性值:@屬性值

python爬蟲資料解析之xpath

xpath是一門在xml文件中查詢資訊的語言。xpath可以用來在xml文件中對元素和屬性進行遍歷。在xpath中,有7中型別的節點,元素,屬性,文字,命名空間,處理指令,注釋及根節點。節點 首先看下面例子 1.0 encoding iso 8859 1 en harry potter j k.ro...

C primer之第二章

閱讀至2.5.2時,發現乙個不知道的知識點 如果某個型別的別名指代的是復合型別或是常量,那麼它用到宣告語句裡面就會產生意想不到的後果,例如下面的宣告語句用到了型別pstring,它實際上是型別char 的別名 typedef char pstring 1 const pstring cstr 0 c...

爬蟲之xpath解析庫

xpath語法 1.常用規則 1.nodename 節點名定位 2.從當前節點擊取子孫節點 3.從當前節點擊取直接子節點 4.nodename attribute 根據屬性定位標籤 div class ui main 5.attributename 獲取屬性 6.text 獲取文字 2.屬性匹配兩種...