【Python爬虫】解析xpath——尚硅谷

1.xpath

xpath的使用:

注意:提前安装xpath插件

1.安装lxml库

pip install lxml ‐i https://pypi.douban.com/simple

2.导入lxml.etree    

from lxml import etree

3.etree.parse()   解析本地文件  

html_tree = etree.parse('XX.html')

4.etree.HTML() 解析服务器响应文件

html_tree = etree.HTML(response.read().decode('utf‐8')

5.html_tree.xpath(xpath路径)
 

2.xpath基本语法

路径查询

//:查找所有子孙节点,不考虑层级关系

/ :找直接子节点

谓词查询

//div[@id]

//div[@id="maincontent"]

属性查询

//@class

模糊查询

//div[contains(@id, "he")]

//div[starts‐with(@id, "he")]

内容查询

//div/h1/text()

逻辑运算

//div[@id="head" and @class="s_down"]

//title | //pric
 


from lxml import etree

#xpath解析
# 1.本地文件
# 2.服务器响应的数据 response.read().decode('utf-8')  etree.HTML

tree=etree.parse('1.xpath的基本使用.html')

#tree.xpath('xpath路径')

#查找url下面的li
#li_list=tree.xpath('//body//li')

#查找所有id的属性的Li标签
#li_list=tree.xpath('//ul/li[@id]/text()')

#找到id为l1的li标签  注意引号问题
#li_list=tree.xpath('//ul/li[@id="l1"]/text()')

#查找到id为l1标签的class的属性值
#li=tree.xpath('//ul/li[@id="l1"]/@class')

#查询id中包含l的li标签
#li_list=tree.xpath('//ul/li[contains(@id,"l")]/text()')

#查询id的值以l开头的li标签
#li_list=tree.xpath('//ul/li[starts-with(@class,"c")]/text()')

#查询id为l1和class为c1
li_list=tree.xpath('//ul/li[@id="l1" and @class="c1"]/text()')

#判断列表的长度
print(li_list)
print(len(li_list))

猜你喜欢

转载自blog.csdn.net/qq_48108092/article/details/126133969