Python爬虫之xlml解析库(全面了解)

Python爬虫之xlml解析库(全面了解),第1张

概述1.XpathXpath是一门在XML中查找信息的语言,可用来在XML文档中对元素和属性进行遍历。XQuery和xpoint都是构建于xpath表达之上

1.Xpath

Xpath是一门在XML中查找信息的语言,可用来在XML文档中对元素和属性进行遍历。Xquery和xpoint都是构建于xpath表达之上

2.节点

父(parent),子(children),兄弟(sibling),先辈(ancetstor),后代(Decendant)

3.选取节点

路径表达式

@H_502_28@
表达式 描述 路径表达式 结果
nodename 选取此节点上的所有的子节点 bookstore 选取bookstore元素的所有子节点
/ 从根节点上选取 /bookstore 选取根元素bookstore,为绝对路径
// 从匹配选择的当前节点选择文档中的节点,不考虑位置 //book 选取所有的book子元素,而不管他们在文档的位置
. 选取当前节点 bookstore//book 选择bookstore后代中所有的book元素
.. 选取当前节点的父节点
@ 选取属性 //@lang 选取名为lang的所有属性

谓语

  谓语用来查找某个特定的节点或者包含某个指定的值的节点

  谓语被嵌在方括号中

@H_502_28@
路径表达式 结果
/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 etreetext='''<div> <ul>  <li ><a href="link1.HTML" rel="external nofollow" rel="external nofollow" >first item</a></li>  <li ><a href="link2.HTML" rel="external nofollow" >second item</a></li>  <li ><a href="link3.HTML" rel="external nofollow" >third item</a></li>  <li ><a href="link4.HTML" rel="external nofollow" >fourth item</a></li>  <li ><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 resultprint type(HTML)result= HTML.xpath('//li')print resultprint len(result)print type(result)print type(result[0])print HTML.xpath('//li/@class') # 获取li标签下的所有的classprint 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爬虫之xlml解析库(全面了解)全部内容,希望文章能够帮你解决Python爬虫之xlml解析库(全面了解)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1201788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存