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下载懒人图库JavaScript特效
May 28 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
Python使用Matplotlib实现Logos设计代码
Dec 25 Python
解决python 输出是省略号的问题
Apr 19 Python
python判断数字是否是超级素数幂
Sep 27 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python 整数越界问题详解
Jun 27 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 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错误和异长常处理总结
2014/03/06 PHP
php开发工具有哪五款
2015/11/09 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python在每个字符后添加空格的实例
2018/05/07 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
Python类super()及私有属性原理解析
2020/06/15 Python
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
.NET方向面试题
2014/11/20 面试题
电子商务专业个人的自我评价
2013/12/19 职场文书
办理居住证介绍信
2014/01/15 职场文书
2013年军训通讯稿
2014/02/05 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
护士医德医风自我评价
2014/09/15 职场文书
邀请函的格式
2015/01/30 职场文书
小学班主任个人总结
2015/03/03 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
围城读书笔记
2015/06/26 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis