一,xpath解析原理
1,实例化一个etree的对象,且需要将解析的页面源码数据加载到该对象中。
2,调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获。
二,如何实例化一个etree对象
1,将本地的html文档中的源码数据加载到etree对象中:
etree.parse(filePath)
2,可以将互联网上的源码加载到该对象中:
entree.HTML('page_text')
xpath(‘xpath表达式’)
三,xpath表达式
1,/:表示的是从根节点开始定位。表示的是一个层级。
2,//:表示的是多个层级。可以表示从任意一个位置开始。
r = tree.path('/html/body/div')
r = tree.xpath('/html//div')
r = tree.xpath(''//div)
3, 属性定位 tag[@attrName=“attrValue”]
r = tree.xpath('//div[@class="song"]')
4,索引定位
r = tree.xpath('//div[@class="song"]/p[3]')
5,取文本
/ text() 获得标签中直系的文本内容
// tsxt () 标签中非直系文本内容(所有文本内容)。
6,取属性:
/@attrName ===>img/src
r = tre.xpath('//div[@class="song"]/img/@src')