python中xpath中加随机数_python使用xpath(超详细)

使用时先安装 lxml 包

开始使用#

和beautifulsoup类似,首先我们需要得到一个文档树

把文本转换成一个文档树对象

from lxml import etreeif __name__ == '__main__':doc='''

first itemsecond itemthird itemfourth itemfifth item# 注意,此处缺少一个闭合标签'''html = etree.HTML(doc)result = etree.tostring(html)print(str(result,'utf-8'))

把文件转换成一个文档树对象

fromlxmlimportetree# 读取外部文件 index.htmlhtml = etree.parse('./index.html')result = etree.tostring(html, pretty_print=True)#pretty_print=True 会格式化输出print(result)

均会打印出文档内容

节点、元素、属性、内容#

xpath 的思想是通过 路径表达 去寻找节点。节点包括元素,属性,和内容

元素举例

html --->...div --->

...a  --->...

这里我们可以看到,这里的元素和html中的标签一个意思。单独的元素是无法表达一个路径的,所以单独的元素不能独立使用

路径表达式#

/  根节点,节点分隔符,//  任意位置.  当前节点..  父级节点@  属性

通配符#

*  任意元素@*  任意属性node()  任意子节点(元素,属性,内容)

谓语#

使用中括号来限定元素,称为谓语

多个路径#

用| 连接两个表达式,可以进行 或匹配

//book/title | //book/price

函数#

contains(string1,string2)

starts-with(string1,string2)

ends-with(string1,string2) #不支持

upper-case(string) #不支持

text()

last()

position()

node()

可以看到last()也是个函数,在前面我们在谓语中已经提到过了

案例#

定位元素#

匹配多个元素,返回列表

fromlxmlimportetreeif__name__ =='__main__':doc='''

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值