1.环境安装
pip install lxml
2.解析原理
2.1实例化一个etree的对象,且将待解析的页面源码数据加载到该对象中
2.2调用etree对象的xpath方法结合着不同的xpath表达式实现标签的定位和数据提取
3.实例化etree对象
etree.parse('filename'):将本地html文档加载到该对象中
etree.HTML(page_text):网站获取的页面数据加载到该对象
4.标签定位
from lxml import etree tree = etree.parse('test.html')
最左侧的/:如果xpath表达式最左侧是以/开头啧表示该xpath表达式一定要从跟标签开始定位标签
非最左侧的/:表示一个层级
非最左侧的//:表示多个层级
最左侧的//:xpath表达式可以从任意位置进行标签定位
#都定位meta tree.xpath('html/head/meta') tree.xpath('html//meta') tree.xpath('//meta')
属性定位:tagName[@attrName='value']
#定位class位为song的div下面所有的p标签 tree.xpath('//div[@class='song']/p')
索引定位:tag.[index]:索引是从1开始的
#定位class位为song的div下面第一个的p标签 tree.xpath('//div[@class='song']/p[1]')
模糊匹配
//div.[contains(@class,"ng")] # 匹配class包含ng
5.取文本
/text:直系文本内容
//text:所有文本内容
#定位class位为song的div下面第一个的p标签下所有文本内容 tree.xpath('//div[@class='song']/p[1]//text()')
6.取属性
/attrName
tree.xpath('//a[@id="geng"/href]') # 取a标签下id等于geng的href
标签:xpath,etree,标签,tree,div,解析,class From: https://www.cnblogs.com/xiongying4/p/17435222.html