數據解析之Xpath解析
阿新 • • 發佈:2018-10-30
htm 文本 from ctrl start [1] 本地文件 title 拖動
一,Xpath基本語法
安裝使用:
1.下載:pip install lxml 2.導包:from lxml import etree 3.將html文檔或者xml文檔轉換成一個etree對象,然後調用對象中的方法查找指定的節點 2.1 本地文件:tree = etree.parse(文件名) tree.xpath("xpath表達式") 2.2 網絡數據:tree = etree.HTML(網頁內容字符串) tree.xpath("xpath表達式") 安裝xpath插件在瀏覽器中對xpath表達式進行驗證:可以在插件中直接執行xpath表達式 將xpath插件拖動到谷歌瀏覽器拓展程序(更多工具)中,安裝成功 啟動和關閉插件 ctrl + shift + x
測試頁面數據
<html lang="en"> <head> <meta charset="UTF-8" /> <title>測試bs4</title> </head> <body> <div> <p>百裏守約</p> </div> <div class="song"> <p>李清照</p> <p>王安石</p> <p>蘇軾</p> <p>柳宗元</p> <a href="http://www.song.com/" title="趙匡胤" target="_self"> <span>this is span</span> 宋朝是最強大的王朝,不是軍隊的強大,而是經濟很強大,國民都很有錢</a> <a href="" class="du">總為浮雲能蔽日,長安不見使人愁</a><img src="http://www.baidu.com/meinv.jpg" alt="" /> </div> <div class="tang"> <ul> <li><a href="http://www.baidu.com" title="qing">清明時節雨紛紛,路上行人欲斷魂,借問酒家何處有,牧童遙指杏花村</a></li> <li><a href="http://www.163.com" title="qin">秦時明月漢時關,萬裏長征人未還,但使龍城飛將在,不教胡馬度陰山</a></li> <li><a href="http://www.126.com" alt="qi">岐王宅裏尋常見,崔九堂前幾度聞,正是江南好風景,落花時節又逢君</a></li> <li><a href="http://www.sina.com" class="du">杜甫</a></li> <li><a href="http://www.dudu.com" class="du">杜牧</a></li> <li><b>杜小月</b></li> <li><i>度蜜月</i></li> <li><a href="http://www.haha.com" id="feng">鳳凰臺上鳳凰遊,鳳去臺空江自流,吳宮花草埋幽徑,晉代衣冠成古丘</a></li> </ul> </div> </body> </html>
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
二 ,獲取boss直聘中的值位信息
數據解析之Xpath解析