Python爬虫之xlml解析库(全面了解)
1.Xpath
Xpath是一门在XML中查找信息的语言,可用来在XML文档中对元素和属性进行遍历。XQuery和xpoint都是构建于xpath表达之上
2.节点
父(parent),子(children),兄弟(sibling),先辈(ancetstor),后代(Decendant)
3.选取节点
路径表达式
表达式
描述
路径表达式
结果
nodename
选取此节点上的所有的子节点
bookstore
选取bookstore元素的所有子节点
/
从根节点上选取
/bookstore
选取根元素bookstore,为绝对路径
//
从匹配选择的当前节点选择文档中的节点,不考虑位置
//book
选取所有的book子元素,而不管他们在文档的位置
.
选取当前节点
bookstore//book
选择bookstore后代中所有的book元素
..
选取当前节点的父节点
@
选取属性
//@lang
选取名为lang的所有属性
谓语
谓语用来查找某个特定的节点或者包含某个指定的值的节点
谓语被嵌在方括号中
路径表达式
结果
/bookstore/book[1]
选取属于bookstore子元素的第一个book元素
/bookstore/book[last()]
选取属于bookstore子元素的最后book元素
/bookstore/book[last()-1]
选取属于bookstore子元素的倒数第二个book元素
/bookstore/book[position()<3]
选取最前面的两个属于bookstore元素的子元素的book元素
//title[@lang='eng']
选取所有的title元素,并且这些元素拥有值为eng的lang属性
/bookstore/book[price>35.0]
选取bookstore元素的所有book元素,且其中的price值大于35.0
选取未知节点(通配符)
*匹配任何元素节点
@*匹配任何属性节点
node()匹配任何类型的节点
4.lxml用法
#!/usr/bin/python #_*_coding:utf-8_*_ fromlxmlimportetree text='''''' #html=etree.HTML(text)#html对象,存储在地址中,有自动修正功能 #result=etree.tostring(html)#将html对象转化为字符串 html=etree.parse('hello.html') #result=etree.tostring(html,pretty_print=True) #printresult printtype(html) result=html.xpath('//li') printresult printlen(result) printtype(result) printtype(result[0]) printhtml.xpath('//li/@class')#获取li标签下的所有的class printhtml.xpath('//li/a[@href="link1.html"rel="externalnofollow"rel="externalnofollow"]')#获取li标签下href为link1的标签 printhtml.xpath('//li//span')#获取li标签下所有的span标签 printhtml.xpath('//li[last()-1]/a')[0].text#获取倒数第二个元素的内容
firstitem seconditem thirditem fourthitem fifthitem
以上这篇Python爬虫之xlml解析库(全面了解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。