python lxml xpath 使用实例!
来源:互联网 发布:c语言中随机数的产生 编辑:程序博客网 时间:2024/05/17 02:17
python lxml xpath 使用实例
目标:使用xpath定位节点,也可以说好像在sql 上提取数据!
例子
#-*- coding:utf-8 -*-import lxml.htmlhtml='''<html><body><bookstore position="cn"> <book category="A"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="B"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book></bookstore><bookstore position="pk"> <book category="A"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book></bookstore><bookstore position="jp"> <book category="C"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book></bookstore></body></html>'''doc = lxml.html.document_fromstring(html)#使用绝对值print "总共有%d本书" %(len(doc.xpath('/html/body/bookstore/book')))#使用相对法,这果同文件路径表示法有出入,//在这里表示相对,在文件路径表示为没效果#只要匹配book就可以了print "使用相对"print "总共有%d本书" %(len(doc.xpath('//book')))print "总共有%d本书" %(len(doc.xpath('//bookstore/book')))print "总共有%d本书" %(len(doc.xpath('//body//book')))#使用上级表示 ..print "使用上级"print "总共有%d本书" %(len(doc.xpath('//../title')))# 使用*来限制等级print "总共有%d本书" %(len(doc.xpath('/html/body/*/book')))#反映用层的用法print "这个不成功的,总共有%d本书" %(len(doc.xpath('/html/body/*/*/book')))
#使用谓词(筛选表达式)#类似 一些语言表达式 1 > 2 && 3 < 4#已知文本节点一般当值值来使用了print "2005 年出版的书有%d本"% (len(doc.xpath('/html/body/bookstore/book[year=2005]')))print "2003 年出版的书有%d本"% (len(doc.xpath('/html/body/bookstore/book[year=2003]')))print "价钱大于>39的书有%d本" %(len(doc.xpath('/html/body/bookstore/book[price>39]')))#一个轴,类似于已知一个节点怎样反求其他节点#ancestor,ancestor-or-self,attribute,child,descendant,descendant-or-self,following,namespace,namespace...print "2005 年出版的书在 %s" % (" ".join([ i.get("position") for i in doc.xpath('/html/body/bookstore/book[year=2003]/parent::*') ]))
0 0
- python lxml xpath 使用实例!
- python 使用lxml解析html(xpath)
- Python lxml xpath
- python爬虫之XPath与lxml的使用
- [XPath/Python] XPath 与 lxml (二)XPath 语法 - iFantasticMe
- python xpath语法与lxml库
- Java调用python之lxml解析xpath
- python3使用Lxml库操作XPath
- python3使用Lxml库操作XPath
- lxml 模块下 xpath 的使用
- python使用lxml解析html获取页面内所有叶子节点的xpath路径
- python爬虫入门笔记:XPath与lxml库
- Python的lxml库学习之XPATH语法
- 三.Python爬虫Xpath语法与lxml库的用法
- Python爬虫Xpath和lxml类库系列之九
- Python lxml解析HTML并用xpath获取元素
- Python爬虫之Xpath与lxml库的用法
- python爬虫攻略(6):lxml与xpath
- sublime3安装Package Control
- epoll_create, epoll_ctl和epoll_wait
- 装系统方法大全
- [linux device driver] Chapter 03:以scull_load为引,详解shell逻辑运算、基本运算、位运算
- [学海拾贝]状态机思路在单片机程序设计中的应用
- python lxml xpath 使用实例!
- sqlite3使用简介
- 使用u-boot烧写linux
- 充血模式和贫血模式
- 品牌H5营销完全实战指南
- 关于屏幕适配问题的工作<个人记录>
- 使用jaxp进行sax解析
- final与类变量初始化问题
- EBS报表查看输出的时候,设置成提示下载xls文件的方法