從0開始學爬蟲3之xpath的介紹和使用

2022-06-16 06:42:09 字數 4055 閱讀 3309

從0開始學爬蟲3之xpath的介紹和使用

xpath:一種html和xml的查詢語言,它能在xml和html的樹狀結構中尋找節點

安裝xpath:

pip install lxml

html

超文字標記語言(hypertext mark-up language),是一種規範,一種標準,是構成網頁文件的主要語言

url統一資源定位器(uniform resource locator),網際網路上的每個檔案都有乙個唯一的url,它包含的資訊之處檔案的位置以及瀏覽器應該怎麼處理它

xpath的使用語法:

獲取文字:

//標籤1[@屬性1=」屬性值1」]/標籤2[@屬性2=」屬性值2」]/…/text()

獲取屬性值

//標籤1[@屬性1=」屬性值1」]/標籤2[@屬性2=」屬性值2」]/…/@屬性n

使用pycharm虛擬環境安裝xpath模組

xpath使用示例

用來進行xpath測試的網頁 static/index.html

>網頁測試

title

>

<

link

rel="stylesheet"

href

="">

head

>

<

body

>

<

h3>標題

h3>

<

ul>

<

li>內容1

li>

<

li>內容2

li>

<

li class

="important"

>內容3important

li>

<

li>內容4

li>

<

li>內容5

li>

ul>

<

div>

內容未知

div>

<

p>

段落內容 from p

p>

<

div

id="container"

>

段落文字

<

a href

=""title

="超連結"

a>

<

p class

="content"

>

區塊內容1

p>

<

p class

="content"

>

區塊內容2

p>

<

p class

="content"

>

區塊內容3

p>

<

p class

="content"

>

區塊內容4

p>

<

p class

="content-block"

>

區塊內容5 from block

p>

<

p class

="content-block"

>

區塊內容6 末尾內容

p>

<

a href

=""title

="超連結"

>跳轉到360搜尋首頁

a>

div>

<

p>

最後一段文字

p>

body

>

html

>

xpath使用示例

#

coding=utf-8

from lxml import

html

defparse():

"""將html檔案中的內容,使用xpath進行提取

"""#

讀取檔案中的內容

f = open('

./static/index.html

', '

r', encoding='

utf-8')

s =f.read()

selector =html.fromstring(s)

#解析h3標題

h3 = selector.xpath('

/html/body/h3/text()')

print

(h3[0])

#解析ul下面的內容

#ul = selector.xpath('/html/body/ul/li')

#雙斜線語法

ul = selector.xpath("

//ul/li")

print

(len(ul))

for li in

ul:

print(li.xpath('

text()

')[0])

#解析ul指定的元素值

ul2 = selector.xpath('

/html/body/ul/li[@class="important"]/text()')

print

(ul2)

#解析a標籤的內容,拆分的方式

#a = selector.xpath('//div[@id="container"]/a')

#標籤內的內容

#print(a[0].xpath("text()")[0])

#得到標籤的屬性

#print(a[0].xpath("@href")[0])

#div[id="container"] 的第二個a標籤內容

#print(a[1].xpath("text()"))

#print(a[1].xpath("@href")[0])

#解析a標籤的內容,一次性解析的方式

a1 = selector.xpath('

//div[@id="container"]/a/text()')

#標籤內容

print

(a1[0])

#標籤數學

alink = selector.xpath('

//div[@id="container"]/a/@href')

print

(alink[0])

#解析p標籤

p = selector.xpath('

/html/body/p[last()]/text()')

print

(p[0])

f.close()

if__name__ == "

__main__":

parse()

當我們在頁面中找不到xpath的時候可以使用chrome的copy xpath進行參考

從0開始學爬蟲12之使用requests庫基本認證

從0開始學爬蟲12之使用requests庫基本認證 此處我們使用github的token進行簡單測試驗證 基本認證 return response requests.get construct url user auth reblue520 reblue520 print response.text...

從0開始學爬蟲4之requests基礎知識

從0開始學爬蟲4之requests基礎知識 安裝requests pip install requests get請求 可以用瀏覽器直接訪問 請求可以攜帶引數,但是又長度限制 請求引數直接放在url後面 post請求 不能使用瀏覽器直接訪問 對請求引數的長度沒有限制 可以用來上傳檔案等需求 requ...

從0開始學spark

參考 local 模式 即單機模式,這種安裝加壓即可,具體安裝方法穿插在 standalone 模式 standalone 模式 即搭建 spark 集群,但不與其他框架整合,如 yarn,此時 spark 執行在集群中 基於 yarn 的 spark 集群部署 yarn 集群 spark 集群,此...