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...