xpath解析数据的方法

时间:2023-01-09 22:07:04
 1 功能描述
 2 1.实例化一个etree对象,且需要将被解析的页面源码数据加载到该对象中
 3 2.调用etree对象中的XPath表达式实现标签的定位和内容捕获
 4 3.环境安装 pip install lxml
 5 实例化一个etree对象方法有
 6 1.将本地的html文档的源码数据加载到etree对象中
 7 etree.parse(filepath)
 8 2.也可以将互联网上的获取的源代码数据加载到该数据中
 9 etree.HTML(’page_text‘)
10 xpath的解析函数
11 
12 '''
13 import requests
14 from lxml import etree
15 # 新版导入方式
16 # from lxml import html
17 tree = etree.HTML(’page_text‘)
18 #定位到div标签,//表示多个层级
19 r1 = tree.xpath('//div')
20 #属性定位
21 r2 = tree.xpath('//div[@class="song]')
22 #索引定位,定位到div下的第三个p标签
23 r3 = tree.xpath('//div[@class="song]/p[3]')
24 # 取文本方法或属性,/text(),只能取直系标签的文本
25 r4 = tree.xpath('//div[@class="song]//li[5]/p/text()')   #
26 # 取文本方法或属性,//text(),能取该标签下所有本文,包括非直系的标签都可以获取
27 r5 = tree.xpath('//div[@class="song]//li[5]/p//text()')
28 # 取标签的属性,/@attrname。例如/img/@src,返回该标签的属性值,即图片地址
29 r5 = tree.xpath('//div[@class="song]/img/@src')