【Python】Python爬虫需要的技能:Xpath的使用

  在我写爬虫最早的时候,我是比较喜欢用正则的,尤其是正则有一个比较牛X的表达式,用过正则
  的朋友应该都会知道,就是——万能正则表达式“(.*?)”
  (开个小玩笑——→如果你不知道证明你还不了解正则)
我有做过爬虫相关的工作,是每天都是重复着同样的工作——写爬虫的抓取规则,这时候我是使用的
是Xpath,而不是正则,事实是我在正常工作中(写爬虫的时候)也很少用到正则,并不是因为他不
好,而是效率不高,换一种说法是上手难易程度比较高吧(我给满分五星的大概四星的难度)

好了,开始介绍用法:

常用的方法有:

  • @ :属性选择 例如 a[@href] 代表选择带有 href 属性的所有 a 标签,*[@id] 这个是选择所有带有 id 属性的标签这个 “ * ” 慎用
  • /:路径选择 例如 /a[@href]html 标签下查找他的第一代子标签中是a标签并且含有 href 这个属性
  • //:也是路径选择 例如 //a[@href] 是选择当前在html标签下所有含有 href 这个属性的a标签
  • .(一个英文状态下的句号) :选择当前标签 例如 /html/body/. 意思是选择body标签
    …(两个英文状态下的句号) :选择父标签 例如 /html/body/… 意思是选择html标签

仅仅这些还是不能满足所有的需求,接下来用一些特定的场景来继续介绍Xpath的用法

比如说:

1. contains()函数

参数:contains(attr,keywords)
使用方法
我们要选择name属性中含有“word”字样的标签,表达式为:
*[contains(@name,“word”)] (ps:字符串使用单引号,双引号均可)

2. not()函数

使用方法
如果选择不包含“word”字样的标签,表达式为*[not(contains(@name,“word”))]

3. substring-before()函数

参数:substring-before(str1,str2)
使用方法
选取文章标题Python爬虫需要的技能:Xpath的使用中“:”前的部分,函数用于返回字符串str1中位于字符串str2之前的部分,表达式为:substring-before(“Python爬虫需要的技能:Xpath的使用”,“:Xpath的使用”)
返回的结果是 Python爬虫需要的技能

4.substring-after()函数

参数:substring-after(str1,str2)
使用方法: 选取文章标题Python爬虫需要的技能:Xpath的使用中“:(冒号)”后的部分,函数用于返回字符串str1中位于字符串str2之后的部分,表达式为:substring-after(“Python爬虫需要的技能:Xpath的使用”,“Python爬虫需要的技能:”)
返回的结果是 Xpath的使用

5. starts-with()

参数:starts-with(attr,keywords)
使用方法: 查找name属性中开始位置包含’user’关键字的标签,表达式为:starts-with(@name,“user”)

6.在Xpth的使用过程还可以是关系运算符

例如同时选择 a 标签和 p 标签,表达式为: //a | //p

我比较常用的方法都在这里了。Xpath的方法还有很多就不一一列举了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值