爬虫xpath

Xpath常用规则
表达式    描述
nodename    选取此节点的所有子节点
/    从当前节点选取直接子节点
//    从当前节点选取子孙节点
.    选取当前节点
. .    选取当前节点的父节点
text()    选取文本
@    选取属性
*    匹配任何元素节点
@*    匹配任何属性节点
node()    匹配任何类型的节点
请看以下示例:

表达式    描述
bookstore    选取bookstore元素的所有子节点
/bookstore    选取根元素 bookstore。
bookstore/book    选取属于 bookstore 的子元素的所有 book 元素。
//book    选取所有 book 子元素,而不管它们在文档中的位置。
bookstore//book    选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
//@lang    选取名为 lang 的所有属性。
//title/text()    选取所有 title 元素的文本。
/bookstore/*    选取 bookstore 元素的所有子元素。
//*    选取文档中的所有元素。
//title[@*]    选取所有带有属性的 title 元素。

属性匹配
我们在选取的时候,可以用@进行属性过滤,例如我们想要选取class为item-1的li节点时:

from lxml import etree
html = etree.HTML(text)
ret = html.xpath('//li[@class="item-1"]')
print(ret)
1
2
3
4
,通过中括号内加属性名和属性值的方式,过滤不要的东西,输出结果:

[<Element li at 0xf5b628>, <Element li at 0xf5b668>]
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值