python3 爬蟲 XPath庫的使用

2021-10-25 14:35:09 字數 3471 閱讀 9753

xpath常用規則

小技巧

生成xpath,只需右鍵copy選擇copy xpath即可,截圖截不下來,自行嘗試

屬性定位:

#找到class屬性值為song的div標籤

//div[@class=「song」]

層級&索引定位:

#找到class屬性值為tang的div的直系子標籤ul下的第二個子標籤li下的直系子標籤a

//div[@class=「tang」]/ul/li[2]/a

邏輯運算:

#找到href屬性值為空且class屬性值為du的a標籤

//a[@href="" and @class=「du」]

模糊匹配:

//div[contains(@class, 「ng」)]

//div[starts-with(@class, 「ta」)]

取文字:

# /表示獲取某個標籤下的文字內容

# //表示獲取某個標籤下的文字內容和所有子標籤下的文字內容

//div[@class=「song」]/p[1]/text()

//div[@class=「tang」]//text()

取屬性:

//div[@class=「tang」]//li[2]/a/@href

//title[@lang=

'english'

] 代表選擇所有名稱為title,屬性值為english的節點

from lxml import etree

text=

''''''

html = etree.html(text)

#構造乙個xpath解析物件

result = etree.tostring(html)

#修正text中的**

print

(type

(result)

)print

(result.decode(

'utf-8'))

'''from lxml import etree

html = etree.parse('./test.html',etree.htmlparser()) #解析當前資料夾下的檔案

獲取所有節點

from lxml import etree

text=

''''''

html = etree.html(text)

#html = etree.parse('./test.html',etree.htmlparse()) 記得括號

result = html.xpath(

'//*'

)#獲取所有節點html、li等

子節點

# /獲取子節點  //獲取子孫節點

from lxml import etree

text=

''''''

html = etree.html(text)

#html = etree.parse('./test.html',etree.htmlparse()) 記得括號

result = html.xpath(

'//li/a'

)#獲取li節點下的a節點

父節點

from lxml import etree

text=

''''''

html = etree.html(text)

#html = etree.parse('./test.html',etree.htmlparse()) 記得括號

#result = html.xpath('//a[@href="link4.html"]/../@class')

result = html.xpath(

'//a[@href="link4.html"]/parent::*/@class'

)print

(result)

文字獲取text()

屬性多值匹配

python3爬蟲實踐(七) xpath介紹

1 什麼是 xpath 2 xpath 開發工具 3 xpath 語法 表示式描述 示例結果 nodename 選取此節點的所有節點 bookstore 選取 bookstore 下所有的子節點 如果是在最前面,代表從根節點擊取。否則選擇某節點下的某個節點 bookstore 選取根元素下所有的 b...

python3爬蟲實戰(3)

今天心血來潮去爬取了一下招聘 的實時招聘資訊。是 選的條件是北京,實習生,計算機軟體。分析 之後發現還是很容易的,不過過程中出了不少小問題,在這裡分享一下。想要爬取的是類似的表單內容。是在ul的li裡。用beautifulsoup解析之後,tem ul bsoj.find ul 存下整個ul元素。對...

python3 爬蟲入門

這裡爬取貓眼電影 top100 榜的資訊,作為學習的第乙個demo。今天開始接觸的python,從爬蟲開始。語言相對來說比較簡單,環境配置到是花了不少時間。有個要注意的點是在引入beautifursoup庫的時候會報錯,因為3.x的庫需要引入的是beautifursoup4.到這一步環境配置基本上o...