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数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
Python多线程编程之多线程加锁操作示例
Sep 06 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
python 实现倒排索引的方法
Dec 25 Python
在python 中实现运行多条shell命令
Jan 07 Python
python 将对象设置为可迭代的两种实现方法
Jan 21 Python
Python静态类型检查新工具之pyright 使用指南
Apr 26 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
Pytest框架之fixture的详细使用教程
Apr 07 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
python 递归相关知识总结
Mar 03 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 include和require的区别深入解析
2013/06/17 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
php blowfish加密解密算法
2016/07/02 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
超清晰的document对象详解
2007/02/27 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
javascript event 事件解析
2011/01/31 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
对Python信号处理模块signal详解
2019/01/09 Python
python实现井字棋小游戏
2020/03/04 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
一套C++笔试题面试题
2012/06/06 面试题
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
农村党支部先进事迹
2014/01/14 职场文书
主题婚礼策划方案
2014/02/10 职场文书
教师现实表现材料
2014/02/14 职场文书
大学生个人自荐信
2014/02/24 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技