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 IDE PyCharm的基本快捷键和配置简介
Nov 04 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
Tensorflow 实现修改张量特定元素的值方法
Jul 30 Python
Pandas GroupBy对象 索引与迭代方法
Nov 16 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
详解【python】str与json类型转换
Apr 29 Python
python画双y轴图像的示例代码
Jul 07 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
Python把图片转化为pdf代码实例
Jul 28 Python
python中的时区问题
Jan 14 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 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实现图象锐化代码
2007/06/14 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
php下Memcached入门实例解析
2015/01/05 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
python的id()函数解密过程
2012/12/25 Python
python查找目录下指定扩展名的文件实例
2015/04/01 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
Python 代码调试技巧示例代码
2020/08/11 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
某科技软件测试面试题
2013/05/19 面试题
中学家长会邀请函
2014/01/17 职场文书
校运会入场式解说词
2014/02/10 职场文书
自立自强的名人事例
2014/02/10 职场文书
会计师职业生涯规划范文
2014/02/18 职场文书
班风口号
2014/06/18 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
建国大业电影观后感
2015/06/01 职场文书
mysql序号rownum行号实现方式
2022/12/24 MySQL