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数据结构之Array用法实例
Oct 09 Python
python使用socket进行简单网络连接的方法
Apr 29 Python
Python利用ansible分发处理任务
Aug 04 Python
Python实现Linux命令xxd -i功能
Mar 06 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
简单了解Django应用app及分布式路由
Jul 24 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
django使用xadmin的全局配置详解
Nov 15 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
Python命令行参数argv和argparse该如何使用
Feb 08 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中几种常见的超时处理全面总结
2012/09/11 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
pandas如何处理缺失值
2019/07/31 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
巾帼文明岗申报材料
2014/05/01 职场文书
2014组织生活会方案
2014/05/19 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
前台接待员岗位职责
2015/04/15 职场文书
活动宣传稿范文
2015/07/23 职场文书
毕业生入职感言
2015/07/31 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python