網頁元素節點選取之xpath測試——python lxml的etree方法
阿新 • • 發佈:2019-02-07
最近在用scrapy爬取資料,每次寫一堆xpath語法,然後執行爬蟲時由於xpath語法錯誤、或者邏輯錯誤亦或者節點不精準多做很多工作,於是想查檢視有沒有簡易的xpath節點測試工具或方法:
網上有xpath線上測試小工具,但這種線上測試網頁在測試網頁文字較大時測試匹配不出來,另外測試時匹配給的是匹配節點的子節點,要測試匹配節點屬性選取時用不上。
還有不少第三方小工具下載,小小測試再裝個小程式不合我意。
查了下python xpath,找到了lxml,裡面的etree方法用來測試xpath語法最好不過了。
方法如下:
安裝lxml模組:
pip3 install lxml
from lxml import etree html=""" 目標網頁右鍵檢視網頁原始碼,全複製貼上到這 """ selector = etree.HTML(html) content1 = selector.xpath('xpath語句1') print(content1) content2 = selector.xpath('xpath語句2')
語法如:
content1=selector.xpath('//div[@class="dt-info"]/h1/text()')
print(conten1)
content2=selector.xpath('//ul[contains(@class,"dtir-4in")]/li[1]/span/text()')[2]
print(2)
content5=selector.xpath('//*[@id="newPrice"]/@href')[3]
print(5)
獲取XPath的方式有兩種:1、通過觀察找規律的方式來獲取XPath2、利用Chrome瀏覽器簡易獲取: 在網頁中F12開啟開發者工具,點這個或者Ctrl+Shif+C,找到你想要獲取XPath的標籤,右鍵>Copy>COPY XPath xpath路徑j就複製好了。