返回介绍

1.2 Python 网络爬虫技术概况

发布于 2025-04-21 19:15:25 字数 2338 浏览 0 评论 0 收藏

1.2.1 Python 中实现 HTTP 请求

本节主要介绍 Python 中都有哪些库和框架可以帮助我们实现网络爬虫。这里要特别说明一点的是,本书的代码和程序全部是在 Python 3.6.3 版本中实现的,也可以直接在 Python 3 的其他版本中运行。虽然大部分代码在 Python 2 中也可以运行,但并不推荐读者使用 Python 2,毕竟 Python 2 已经成为过去,Python 3 才是未来。

前面已经介绍,网页下载器是爬虫的核心部分之一,下载网页就需要实现 HTTP 请求,在 Python 中实现 HTTP 请求比较常用的主要有两个库。

一是 Urllib 库。Urllib 库是 Python 内置的 HTTP 请求库,可以直接调用。

二是 Requests 库。Requests 库是用 Python 语言编写的,基于 Urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 Urllib 更加方便,使用它可以节约我们大量的工作,完全满足 HTTP 的测试需求。Requests 是一个纯 Python 编写的、简单易用的 HTTP 库。

这两种实现 HTTP 请求的库中,Requests 库最简单,功能也最丰富,完全可以满足 HTTP 测试需求,是本书中手写简单爬虫的主力库,推荐读者学习和使用。至于 Urllib 库,后面的章节将做简单的介绍,让读者有所了解。

1.2.2 Python 中实现网页解析

所谓网页解析器,简单地说就是用来解析 HTML 网页的工具,它主要用于从 HTML 网页信息中提取需要的、有价值的数据和链接。在 Python 中解析网页主要用到图 1-4 所示的 3 种工具。

图 1-4 Python 解析网页常用的 3 种工具

一是正则表达式。正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串,将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则表达式的优点是基本能用正则表达式来提取想要的所有信息,效率比较高,但缺点也很明显 - 正则表达式不是很直观,写起来比较复杂。

二是 Lxml 库。这个库使用的是 XPath 语法,同样是效率比较高的解析库。XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 比较直观易懂,配合 Chrome 浏览器或 Firefox 浏览器,写起来非常简单,它的代码速度运行快且健壮,一般来说是解析数据的最佳选择,Lxml 是本书中解析网页的主力工具。

三是 Beautiful Soup。Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库。它能够通过我们喜欢的转换器实现惯用的文档导航、查找。Beautiful Soup 编写效率高,能帮程序员节省数小时甚至数天的工作时间。Beautiful Soup 比较简单易学,但相比 Lxml 和正则表达式,解析速度慢很多。

总结起来,无论正则表达式、Beautiful Soup 库还是 Lxml 库,都能满足我们解析网页的需求,但 Lxml 使用的 XPath 语法简单易学、解析速度快,是本书推荐读者使用的网页解析工具。

1.2.3 Python 爬虫框架

前面介绍的 HTTP 请求库和网页解析技术都是一步步手写爬虫时使用的,Python 中还有很多帮助实现爬虫项目的半成品 - 爬虫框架。爬虫框架允许根据具体项目的情况,调用框架的接口,编写少量的代码实现一个爬虫。爬虫框架实现了爬虫要实现的常用功能,能够节省编程人员开发爬虫的时间,帮助编程人员高效地开发爬虫。

在 Python 中,爬虫框架很多,常见的 Python 爬虫框架主要有 Scrapy 框架、Pyspider 框架、Cola 框架等。

Scrapy 框架是 Python 中最著名、最受欢迎的爬虫框架。它是一个相对成熟的框架,有着丰富的文档和开放的社区交流空间。Scrapy 框架是为了爬取网站数据、提取结构性数据而编写的,可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中。Scrapy 框架是本书后半部分重点讲解的技术框架,利用它可以高效地爬取 Web 页面并提取有价值的结构化数据。

Pyspider 框架是国人编写的、用 Python 实现的、功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写、功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任务优先级等。读者如果有兴趣,可以查看它的相关文档。

Cola 框架是一个分布式的爬虫框架,用户只需编写几个特定的函数,而无需关注分布式运行的细节,任务会被自动分配到多台机器上,整个过程对用户是透明的。

Python 还有很多其他的爬虫框架,它们各有特点,读者可以上网查阅相关材料。本书将深入讲解 Scrapy 框架的使用。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。