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_*_ from lxml import etree text=''' <div> <ul> <li class="item-0"><a href="link1.html" rel="external nofollow" rel="external nofollow" >first item</a></li> <li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li> <li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li> <li class="item-1"><a href="link4.html" rel="external nofollow" >fourth item</a></li> <li class="item-0"><a href="link5.html" rel="external nofollow" >fifth item</a> </ul> </div> ''' # html=etree.HTML(text) #html对象,存储在地址中,有自动修正功能 # result=etree.tostring(html) #将html对象转化为字符串 html=etree.parse('hello.html') # result=etree.tostring(html,pretty_print=True) # print result print type(html) result= html.xpath('//li') print result print len(result) print type(result) print type(result[0]) print html.xpath('//li/@class') # 获取li标签下的所有的class print html.xpath('//li/a[@href="link1.html" rel="external nofollow" rel="external nofollow" ]') #获取li标签下href为link1的<a>标签 print html.xpath('//li//span') #获取li标签下所有的span标签 print html.xpath('//li[last()-1]/a')[0].text #获取倒数第二个元素的内容
以上这篇Python爬虫之xlml解析库(全面了解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
python爬虫
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。