Python编程基础之(五)Scrapy爬虫框架

Python编程基础之(五)Scrapy爬虫框架,第1张

经过前面四章的学习,我们已经可以使用Requests库、Beautiful Soup库和Re库,编写基本的Python爬虫程序了。那么这一章就来学习一个专业的网络爬虫框架--Scrapy。没错,是框架,而不是像前面介绍的函数功能库。

Scrapy是一个快速、功能强大的网络爬虫框架。

可能大家还不太了解什么是框架,爬虫框架其实是实现爬虫功能的一个软件结构和功能组件的集合。

简而言之, Scrapy就是一个爬虫程序的半成品,可以帮助用户实现专业的网络爬虫。

使用Scrapy框架,不需要你编写大量的代码,Scrapy已经把大部分工作都做好了,允许你调用几句代码便自动生成爬虫程序,可以节省大量的时间。

当然,框架所生成的代码基本是一致的,如果遇到一些特定的爬虫任务时,就不如自己使用Requests库搭建来的方便了。

PyCharm安装

测试安装:

出现框架版本说明安装成功。

掌握Scrapy爬虫框架的结构是使用好Scrapy的重中之重!

先上图:

整个结构可以简单地概括为: “5+2”结构和3条数据流

5个主要模块(及功能):

(1)控制所有模块之间的数据流。

(2)可以根据条件触发事件。

(1)根据请求下载网页。

(1)对所有爬取请求进行调度管理。

(1)解析DOWNLOADER返回的响应--response。

(2)产生爬取项--scraped item。

(3)产生额外的爬取请求--request。

(1)以流水线方式处理SPIDER产生的爬取项。

(2)由一组 *** 作顺序组成,类似流水线,每个 *** 作是一个ITEM PIPELINES类型。

(3)清理、检查和查重爬取项中的HTML数据并将数据存储到数据库中。

2个中间键:

(1)对Engine、Scheduler、Downloader之间进行用户可配置的控制。

(2)修改、丢弃、新增请求或响应。

(1)对请求和爬取项进行再处理。

(2)修改、丢弃、新增请求或爬取项。

3条数据流:

(1):图中数字 1-2

1:Engine从Spider处获得爬取请求--request。

2:Engine将爬取请求转发给Scheduler,用于调度。

(2):图中数字 3-4-5-6

3:Engine从Scheduler处获得下一个要爬取的请求。

4:Engine将爬取请求通过中间件发送给Downloader。

5:爬取网页后,Downloader形成响应--response,通过中间件发送给Engine。

6:Engine将收到的响应通过中间件发送给Spider处理。

(3):图中数字 7-8-9

7:Spider处理响应后产生爬取项--scraped item。

8:Engine将爬取项发送给Item Pipelines。

9:Engine将爬取请求发送给Scheduler。

任务处理流程:从Spider的初始爬取请求开始爬取,Engine控制各模块数据流,不间断从Scheduler处获得爬取请求,直至请求为空,最后到Item Pipelines存储数据结束。

作为用户,只需配置好Scrapy框架的Spider和Item Pipelines,也就是数据流的入口与出口,便可完成一个爬虫程序的搭建。Scrapy提供了简单的爬虫命令语句,帮助用户一键配置剩余文件,那我们便来看看有哪些好用的命令吧。

Scrapy采用命令行创建和运行爬虫

PyCharm打开Terminal,启动Scrapy:

Scrapy基本命令行格式:

具体常用命令如下:

下面用一个例子来学习一下命令的使用:

1建立一个Scrapy爬虫工程,在已启动的Scrapy中继续输入:

执行该命令,系统会在PyCharm的工程文件中自动创建一个工程,命名为pythonDemo。

2产生一个Scrapy爬虫,以教育部网站为例>

我自己是学java,做了4年java开发,4年项目管理。去年因为兴趣,工作之余自学了Python,也就是上下班时间在地铁上学习基础知识,2天时间完成了爬虫小程序开发。你如果没有接触过编程,也不是计算机专业,又想学习编程,我首推也是Python,有以下几个原因:

1近几年Python仍旧很火。IEEE今年9月发布的最受欢迎的编程语言,Python排名第一,而TIOBE今年6月的发布的排名,Python排第三。我们公司最近两年开发的运维工具、自动化工具部分也是用Python编写的。

2Python的入门难度相对较低,作为编程初学者来说,易学习易上手,与其他语言相比更简便。

3Python用途很广,可以开发网站,也可以运用到机器学习和数据科学方面。掌握它你可以用它做很多事情。

没有编程经验的人要怎么学习,才能快速上手,写一些小程序,开发一些工具呢?

我推荐的方法是边学基础知识,边实践。如果单纯只是学习基础知识,而不实践,学习的内容很容易就遗忘了,但直接从实践入手,基础没有打好,实践过程中会很吃力,会遇到很多问题,而降低了学习兴趣。具体要怎么推进呢?

首先要学习Python的基础知识。网上有很多Python网络课程,以及电子书,你挑选一个免费的通俗易懂的,且可以边学边实践的进行学习。我一开始是在网络课堂学习,也下载了一些电子书,偶然发现某个网络课程推荐了一个Python学习网站,发现里面的Python教程,不仅通俗易懂,而且每个章节都会有重点知识总结与实 *** 练习题,能加深知识的掌握,且现学现用,不会觉得枯燥,所以之后我都是通过这个网站学习。用这种边学边实践的方式,学习兴趣一直比较浓厚,基本上每天用上下班时间能学习3、4个小章节,3周基本已熟悉基础知识,且通过实 *** 练习加深对基础知识的理解。

其次是参考别人代码,写一些简单的小程序。比如写爬虫小程序,你可以上网找一些样例看下,然后参考别人的代码,写自己的小程序。若只学习基础知识,很容易遗忘,需不断实践,加深印象。所以可以边学基础知识,边动手开发小程序,你会发现开发小程序并不难,同时也会增加学习兴趣。

最后就是在学习过程中确定自己的目标。学习python语言是为了要用它,那要用来做什么呢?这个可以在学习过程中慢慢想。就拿我自己来说,学习这门语言,是想快速开发一些小工具,能将日常工作中重复性工作,通过工具完成,提高工作效率。

如果你能坚持每天抽1~2个小时学习,我相信不到1个月,你就能自己写小程序,开发工具。加油~

以上就是关于Python编程基础之(五)Scrapy爬虫框架全部的内容,包括:Python编程基础之(五)Scrapy爬虫框架、用python编写程序、Python怎么从零基础到写出自己想要的代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10631293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存