xpath解析
- 最常用切最便捷高效的一种方式
- xpath解析原理:
- 实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中
- 调用etree对象中的xpath方法结合xpath表达式实现标签的定位和内容的捕获
- 环境安装
- pip install lxml
- 如何实例化一个etree对象
- 导包:from lxml import etree
- 将本地的HTML文档中的数据加载到该对象中:
- etree.parse(filePath,etree.HTMLParser())
- 解析本地本件第二个参数最好加上,不然可能报错
- 可以将互联网上获取的源码数据加载到该对象中
- etree.HTML(‘page_text’)
- xpath(‘xpath表达式’)
- 标签定位:
- xpath表达式只能用层级定位定位标签
# 标签的定位 #最前面的/表示从根节点开始 # 一个标签返回一个element对象 r=tree.xpath('/html/head/title')
- 多层级定位
#一个//表示一个多层级,也可以表示从任意位置开始定位 r=tree.xpath('/html//title')
- 精准定位
#精准定位class为song的divs r = tree.xpath('//div[@class="ong"]')
- 索引定位
# 索引定位,返回第几个元素,且索引从1开始 r = tree.xpath('//div[@class="song"]/p[3]')
- 取直系文本
#取文本,text()返回的是一个列表,取得是直系内容 r = tree.xpath('//div[@class="song"]//li[5]/a/text()')
- 取非直系文本
#获取标签中非直系的文本内容 r
- 标签定位: