初探python爬虫(四)——xpath

在爬虫时可以使用xpath做相应的信息抽取

xpath常用规则

表达式描述
nodename选取此接待你的所有子节点
/从当前节点选取直接子节点
//从当前节点选取子孙节点
.选取当前节点
选取当前子节点的父节点
@选取属性

安装
cmd-》pip3 install lxml

实例

##第一种方式,直接再python代码中解析html字符串


#导入lxml,下面两句话相当于from lxml import etree
#只不过在python之后的lxml模块中不再能直接应仍有etree模块
from lxml import html
etree = html.etree

text='''
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单验证01</title>
</head>
<body>
    <ul>
    <li><a href ="/a/b/c/java/" >java</a></li>
    <li><a href ="/a/b/c/python/" >python</a></li>
    <li><a href ="/a/b/c/ai/" >ai</a></li>
    
    </ul>
</body>
</html>

'''
#使用etree解析html中的字符串
html = etree.HTML(text)
# print(html)
#提取是数据
r= html.xpath('/html/body/ul/li/a')
# print(r)#[<Element a at 0x16f6748>, <Element a at 0x16f6828>, <Element a at 0x16f6968>]

# r= html.xpath('/html/body/ul/li/a/text()')
# print(r) #['java', 'python', 'ai']

r= html.xpath('/html/body/ul/li[1]/a/text()')
print(r) #['java']



'''
/   当前元素的直接字节点
//  当前元素的子节点或者孙子节点

text()  获取文本
@attr   获取属性对应的值


获取第一个
li[1]

获取最后一个
li[last]

获取前两个
li[position()<3]

获取倒数第三个
li[last()-2]


'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值