xpath解析原理
- 實例化etree對象,將頁面源碼傳給該對象。
- 用生成的etree對象,調用xpath方法和xpath表達式進行定位、獲取數據。
環境安裝
pip install lxml
基本用法
from lxml import etree
- 將本地文本傳給etree對象:etree.parse(filepath)
- 將頁面源碼傳給etree對象:etree.parse(page-text)
- 表達式用法:etree-obje.xpaht('xpath表達式‘),xpath表達式是解析的重點,先上代碼。
from lxml import etree
......……
tree=etree.parse('test.html')
r=tree.xpath('/html/head/title') #取得title元素對象。
xpath表達式
- /:爲分隔符,意義是第一個“/”爲根節點,其他的“/”表示一個層級。
- //:表示多個層級,如tree.xpath('//titlt'),tree.xpath('/html//title').
- 屬性定位:如tree.xpath('//div[@class="classname"] ')
- 索引定位:如tree.xpath('//div[@class="classname"] /p[3]'),注意索引是從1開始的。
- 取文本:/text()取直系文本。如tree.xpath('//div[@class="classname"]/text() ')
//text()取標籤下全部文本,如tree.xpath('//div[@class="classname"]//text() ') - 取屬性:/@tattrName,如tree.xpath('//div[@class="classname"]//a/@href ')