数据处理之XPATH提取数据--------常用方法

**

etree数据处理之XPATH提取数据--------常用方法

**

parser = etree.HTMLParser(encoding=‘utf-8’)
html=etree.parse(‘A000000_table.html’,parser=parser)

/AAA 绝对路径 表示必须以AAA开头

print(html.xpath(‘/html’)[0])

/AAA/BBB 选择AAA下面的所有BBB元素 但是AAA必须是开头的元素

print(html.xpath(‘/html/body’)[0])

//AAA 文档中任意位置满足AAA的元素(无论层级关系)

//AAA//BBB 选择所有父元素是AAA的BBB元素
print(html.xpath(‘//table’)[0])

/AAA/BBB/CCC/* AAA下的BBB下的CCC 里面的所有元素

print(html.xpath(‘/html/body/table/*’)[0])

所有元素 出现在任何地方的任何元素

print(html.xpath(‘//*’)[0])

选择AAA下的第一个BBB元素

print(html.xpath(‘/AAA/BBB[1]’))

选择AAA下的最后一个BBB元素

print(html.xpath(‘/AAA/BBB[last()]’))

//@id 获取所有的id属性

print(html.xpath(‘//@id’))

//BBB[@id]选择有id属性的BBB元素

print(html.xpath(‘//td[@id]’))

选择有任意属性的BBB元素

print(html.xpath(‘//BBB[@*]’))

选择没有属性的 BBB元素

print(html.xpath(‘//BBB[not(@*)]’))

//BBB[@id=xxx] id=xxx的BBB元素

print(html.xpath(“//td[@data-id=‘xxx’]”))

normallize-space 去掉空格之后

print(html.xpath(“//td[normalize-space(@data-id=‘xxx’])”))

//*[count(BBB)=2] #含有两个BBB子元素的 元素

print(html.xpath(“//*[count(tr)=2]”))

//*[starts-with(name(),‘B’)] 选择所有名字以B开头的元素

print(html.xpath(“//*[starts-with(name(),‘t’)]”))

//*[contains(name(),‘B’)] 选择名字里带有B的元素

print(html.xpath(“//*[contains(name(),‘t’)]”))

//*[string-length(name())=3] 选择名字长度=3的元素

print(html.xpath(“//*[string-length(name())=3]”))

//BBB/parent:😗 选择BBB的父元素

print(html.xpath(“//tr/parent:😗”))

//BBB/ancestor:😗 选择BBB的祖先节点

print(html.xpath(“//td/ancestor:😗”))

//BBB/following-sibling:😗 选择BBB的下面的所有兄弟节点

print(html.xpath(“//td/following-sibling:😗”))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值