当前位置: 主页 > Python语言

python 34爬虫框架-python爬虫框架

发布时间:2023-03-13 10:06   浏览次数:次   作者:佚名

Scrapy 爬虫框架介绍

今天我们开始学习一门新的 Python 框架:Scrapy。Scrapy 是一个爬虫框架,能帮助我们简化网络爬虫开发,用最少的代码完成爬虫项目,同时具备完整爬虫功能。

1. 爬虫简介

网络爬虫是一段具有特殊含义的代码,其功能是模拟用户在浏览器上的操作,发送 HTTP 请求,接收数据,然后解析并保存数据,方便其他应用程序使用和分析。

这个过程中间包含了许多自动化的操作,若使用得当,可以产生大量的经济价值以及帮助我们减少繁杂的工作。

互联网上每天都会有无数的爬虫在网络上游走,获取相应网站的数据。这些爬虫和人一样,有好有坏,有正义的,也有邪恶的。比如百度 Spider 等搜索引擎爬虫,为我们提供了信息检索的最新数据,我们能通过搜索关键字找到相应的网站,正是得益于百度 Spider 每天孜孜不倦的工作。搬运相应网站的地址和更新相应的信息数据,这也是必要的爬虫,许多网站也乐于被百度爬虫抓取最新数据。

但是也存在许多恶意爬虫,长时间、大规模的请求特定网站数据,给网站服务器造成了巨大的压力,影响正常用户请求,这也是许多网站讨厌爬虫并积极设置反爬虫策略的原因。

对于个人开发者而言,学好爬虫技术,对于个人成长方面有着极大的好处:

事实上,爬虫的应用还有很多,就不在此逐一说明了。接下来我们介绍 Python 的爬虫框架以及使用爬虫框架进行开发的好处。

2. 各种爬虫框架优缺点对比

下面我们介绍开源界中几个关注度比较高的 Python 爬虫框架。所谓关注度高包括 Github 上的点赞数以及文档的丰富程度。

2.1 Scrapy

Scrapy 框架大概是最火的 Python 爬虫框架了,这一点可以从它的 Github 点赞数看出来:38k !单纯从这个数字就可以看出这是一个超级热门的框架了。

图片描述

Scrapy 的 github 地址

在 Scrapy 的官方文档中,对该框架是这么介绍的:

Scrapy is an application framework for crawling web sites and extracting structured data which can be used for a wide range of useful applications, like data mining, information processing or historical archival.

简单翻译下就是:

Scrapy 是一个为了爬取网站数据python 34爬虫框架,提取结构性数据而编写的应用框架。尽管如此,它也可以作为一个通用的 Web 爬虫框架来开发爬虫项目。它基于 Twisted 这个流行的异步处理框架,因此具有较高的性能。开发者只需要定制开发几个模块就可以轻松的实现一个高性能爬虫,用来抓取网页内容,非常方便。下面我总结了一下 Scrapy 框架的几个优点:

当然,Scrapy 框架也是有不少缺点的,比较明显的有如下几点:

基于 Scrapy 的这些缺点产生了许多框架的插件来解决。比如 scrapy-redis 解决了 Scrapy 框架的分布式爬取问题; scrapy-splash 插件可以抓取 js 动态渲染内容等等。后面我们也会基于这些插件开发一个完整的分布式爬虫项目来帮助我们体验爬虫的魅力。

2.2 Pyspider

pyspider 是一款国人编写的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写python 34爬虫框架,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任务优先级等。总的来说,它的特点如下:

Pyspider 也存在一些明显的问题:丰富的文档、成熟的社区,这些都是 pyspider 欠缺的,也造成了 Pyspider 不如 Scrapy 流行的重要原因之一。但 Pyspider 在简洁易用性上却是胜过 Scrapy 的,很多初学者也会非常喜欢它提供的 webui 页面,这也是该框架得以流行的原因之一。

2.3 Cola

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

但是从 Github 上的用户的关注度来看,相比上面两个框架而言,差了不少。整个项目的主要贡献者只有2个人,且上次一发布 release 版本还是2015年的上古时代。这些都已经充分说明了 Cola 框架正在逐渐走向衰退,不建议在生产环境中使用,其潜在的 Bug 和相关安全风险无法得到及时的更新和修复,但是作为学习爬虫框架的参考资料还是不错的,深入研究这样一个框架的源码能收获不少知识。

3. 为什么要学习 Scrapy?

Scrapy 是一款性能强大爬虫框架,基于 Scrapy 我们可以快速开发出高性能的爬虫。此外,由于 Scrapy 框架的高度可扩展性,我们可以在该框架简单改造就能实现自己的业务需求。例如 Scrapy-Redis 插件,短短几千行代码就实现 Scrapy 框架的分布式功能。

如果能熟练掌握 Scrapy 框架,我们会具备如下的优势:

看到这些特点后,你还有什么理由不学习 Scrapy 框架呢?

4. 学习基础

为了学好该框架以及熟练使用 Scrapy 开发爬虫项目,我们需要具备以下基础:

本课程会假定你已经了解或者熟悉上述基础知识,并在后面不会对一些简单的问题作出解释,重点放到剖析这个框架并熟练掌握。

5. 小结

本小节简单介绍了爬虫知识以及在 Python 中比较流行的爬虫框架,重点介绍了 Python 中大火的 Scrapy 框架,这也是我们接下来学习的重点。紧接着描述了学习 Scrapy 框架必备的一些基础知识 。从下一节起,将开始我们正式的剖析 Scrapy 框架之旅,祝大家旅途愉快。