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


Posted in Python onAugust 08, 2017

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() 选取最前面的两个属于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 相关文章推荐
Python中使用urllib2防止302跳转的代码例子
Jul 07 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
Python同步遍历多个列表的示例
Feb 19 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
Python坐标线性插值应用实现
Nov 13 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
对python中return与yield的区别详解
Mar 12 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
Python基于gevent实现文件字符串查找器
Aug 11 Python
ASP.NET Core中的配置详解
Feb 05 Python
Python 3中print函数的使用方法总结
Aug 08 #Python
Python读取sqlite数据库文件的方法分析
Aug 07 #Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 #Python
django实现前后台交互实例
Aug 07 #Python
python扫描proxy并获取可用代理ip的实例
Aug 07 #Python
python的多重继承的理解
Aug 06 #Python
python中 chr unichr ord函数的实例详解
Aug 06 #Python
You might like
一个PHP+MSSQL分页的例子
2006/10/09 PHP
一些使用频率比较高的php函数
2008/10/03 PHP
php SQL Injection with MySQL
2011/02/27 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
PHP时间类完整代码实例
2021/02/26 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
python 获取et和excel的版本号
2009/04/09 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
TensorFlow变量管理详解
2018/03/10 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
会计自荐书
2013/12/02 职场文书
管理部部长岗位职责
2013/12/05 职场文书
青年文明号服务承诺
2014/03/31 职场文书
金砖之国观后感
2015/06/11 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
python_tkinter事件类型详情
2022/03/20 Python