数据处理之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:”))

你可能感兴趣的:(python,大数据,开发语言)