Python爬蟲網頁解析神器Xpath快速入門教學!!!
1、Xpath介紹
2、Xpath路徑表達式
3、結合實例講解
1、Xpath介紹
2、Xpath路徑表達式
3、結合實例講解
1、Xpath介紹
XPath 是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進行遍歷。
2、Xpath路徑表達式
3、結合實例講解
這里我就是使用百度的界面為大家進行講解
==例==:我想獲取圖中的百度熱榜,打開控制臺,我們可直接根據div標簽的class值進行定位(這是我們平時使用xpath語法比較多的地方)
from lxml import etree import requests headers = { "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36" } url = "https://www.baidu.com/" response = requests.get(url=url,headers=headers) #使用etree進行解析 data = etree.HTML(response.text) #可參考上表格進行對比,//div可理解為任意路徑下的一個div標簽,@class表示選取class屬性,text()表示獲取text文本 name = data.xpath("http://div[@class='title-text c-font-medium c-color-t']/text()") print(name[0])
==例==:我想獲取熱榜有哪些信息,參考下圖可見其全部在ul標簽下,每一個信息對于一個li標簽
data = etree.HTML(response.text) #//ul表示任意路徑下的ul標簽, #表示獲取ul下的所有li標簽 ul = data.xpath("http://ul[@class='s-hotsearch-content']/li") #當然,大家在爬取過程中可能會遇到沒有class屬性的標簽,這時可使用id定位,又或者定位其父標簽,再往下找 #ul = data.xpath("http://ul[@id='hotsearch-content-wrapper']/li") #遍歷 for li in ul: # .//span表示當前節點下的任意span標簽,我們再根據class值定位,使用text()獲取文本信息 name = li.xpath(".//span[@class='title-content-title']/text()") print(name[0])
==例==:定位百度熱榜找它的父節點也就是a標簽的href屬性
data = etree.HTML(response.text) #..表示其父節點 url = data.xpath("http://div[@class='title-text c-font-medium c-color-t']/../@href") print(url[0])
Xpath語法其實不難的,大家需要多練習,進行實戰,這樣熟練掌握會很快的,可以下方的爬蟲教程索引,里面有很多爬蟲使用xpath寫的,可以閱讀看看。
博主會持續更新,有興趣的小伙伴可以、關注和下哦,你們的支持就是我創作最大的動力!
XML
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。