即XML路径语言(XML Path Language),是一种用来肯定XML文档中某部分位置的语言,它基于XML的树状结构,提供在数据结构树中寻找节点的能力,也适用于HTML文档中;html
Chrome 在Chrome的应用商店搜索XPath Helper,而后安装这个插件便可; node
Firefox 一样的方式,在应用中心查找XPath Checker,而后安装这个插件便可,因为未使用Firefox,便再也不演示;python
| 表达式 | 描述 | 示例 | |--|--|--| | nodename|选词当前节点下节点的全部子节点 | div | | / | 若在最前,则表示从根节点开始选取,不然选择某节点下的某个节点 | /div | | // | 从全局节点中选取某一节点所在全部位置 | //div | | @ | 选取某一节点属性 | //div[@color] |shell
路径表达式 | 描述 |
---|---|
/markstore/mark[1] | 选取markstore下第一个元素 |
/markstore/mark[last()] | 选取markstore下倒数第二个mark元素 |
markstore/mark[position()<5] | 选取markstore下前四个子元素 |
//mark[@id] | 选取拥有id的mark元素 |
//mark[@id=‘k’] | 选取id属性为k的mark元素 |
通配符 | 描述 |
---|---|
* | 匹配任意节点 |
@* | 匹配节点中的任意属性 |
使用以下命令安装便可,数据结构
pip install lxml
from lxml import etree text = ''' <div> <ul> <li class="id-1"><a href="www.baidu.com">baidu</a></li> <li class="id-2"><a href="www.google.com">Google</a></li> </ul> </div> ''' # 解析字符串为html文档 html = etree.HTML(text) # 字符串序列化为html文档 result = etree.tostring(html, encoding='utf-8') print(result.decode('utf-8')) # 从文件读取 parser = etree.HTMLParser(encoding='utf-8') html = etree.parse('csdn.html', parser=parser) # 获取全部a标签的href属性 aList = html.xpath('//a/@href') for a in aList: print(a)
本文主要介绍了爬虫中数据解析时所须要的用的XPath和lxml库,介绍了它们的安装方式和简单的使用方式,若是你有更好的建议和想法,欢迎留言指正。工具