1. 背景
- 目前爬虫解析网页的技术有:Json, 正则表达式,BeautifulSoup,PyQuery,XPath
- XPath 教程 官方文档:
http://www.w3school.com.cn/xpath/index.asp
2. XPath简述
2.1. 什么是XPath?
- XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。
2.2. XPath 开发工具
1.开源的XPath表达式编辑工具: XMLQuire(XML格式文件可用)
2.Chrome插件 XPath Helper
3.Firefox插件 XPath Checker
2.3. XPath语法的解析库 —— lxml库
- lxml 是一个HTML/XML的解析器,主要的功能是解析和提取 HTML/XML 数据,我们可以利用XPath语法,来快速的定位特定元素以及节点信息。
- lxml和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML 解析器。
- lxml python 官方文档: http://lxml.de/index.html
- 安装lxml库:需要安装C语言库,可使用 pip 安装:pip install lxml (或通过wheel方式安装)
3. 什么是XML?
- XML 指可扩展标记语言(EXtensible Markup Language)
- XML 是一种标记语言,很类似 HTML
- XML 的设计宗旨是传输数据,而非显示数据
- XML 的标签需要我们自行定义。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准
- XML 官方文档:http://www.w3school.com.cn/xml/index.asp
3.1. XML 和 HTML 的区别
数据格式 | 描述 | 设计目标 |
---|---|---|
XML | Extensible Markup Language (可扩展标记语言) | 被设计为传输和存储数据,其焦点是数据的内容。 |
HTML | HyperText Markup Language (超文本标记语言) | 显示数据以及如何更好显示数据。 |
HTML DOM | Document Object Model for HTML (文档对象模型) | 通过 HTML DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。 |
3.2. XML文档示例
- 可以在 http://www.w3school.com.cn/example/xmle_examples.asp 找到很多XML文档示例。
<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<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>
<book category="web"