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网络编程学习笔记(三):socket网络服务器
Jun 09 Python
python打开url并按指定块读取网页内容的方法
Apr 29 Python
Python中使用支持向量机SVM实践
Dec 27 Python
Python设计模式之命令模式简单示例
Jan 10 Python
python使用RNN实现文本分类
May 24 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
python numpy中multiply与*及matul 的区别说明
May 26 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
php微信开发之关注事件
2018/06/14 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
Python实现的归并排序算法示例
2017/11/21 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
临床医学专业学生的自我评价分享
2013/11/21 职场文书
卫校中专生的自我评价
2014/01/15 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
贷款担保申请书
2014/05/20 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
丽江古城导游词
2015/02/03 职场文书
葬礼主持词
2015/07/02 职场文书
建房合同协议书
2016/03/21 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android