python爬虫scrapy框架基础

我使用的软件是pychram

最近几周也一直在学习scrapy,发现知识点比较混乱,今天来总结一下。我是按照《精通python网络爬虫核心技术框架与项目实战》这本书来写的。讲的比较简洁,想要详细了解的可以看看书或者视频。

scrapy框架运行的原理

python爬虫scrapy框架基础_第1张图片

首先scrapy引擎会将蜘蛛爬虫(spider)中设置的起始网址传递到调度器中

第一步:过程(1)是调度器(Scheduler)将要爬取的网址传递到scrapy引擎中,调度器是一个优先队列,根据优先级按顺序传递到scrapy引擎中
第二步:过程(2)是scrapy收到
调度器(Scheduler)传递的网址,将网址传给下载中间件(Downloader Middlewares)

第三步:过程(3)是下载中间件(Downloader Middlewares)将收到的网址传递给下载器

第四步:下载器接收到要下载的网址,过程(4)是下载器向互联网发送request请求,进行网页的下载

第五步:互联网中对应的网址收到request请求之后,会有相应的response响应,过程(5)是将response响应传给下载器

第六步:下载器接收到了response响应即对网址进行了下载,过程(6)将对应的响应传送给下载中间件

第七步:下载中间件收到response请求后,与scrapy引擎通信,过程(7)是将response响应传到scrapy引擎

第八步:过程(8)是scrapy引擎将response响应传给爬虫中间件

第九步:过程(9)是爬虫中间件将response响应传给对应的蜘蛛爬虫(spider)进行处理

第十步:蜘蛛爬虫(spider)进行处理response响应,一般会有两个东西,提取出来的数据和新的请求信息,然后过程(10)将处理后的信息传递给爬虫中间件

第十一步:过程(11)是爬虫中间件将处理后的信息传给scrapy引擎

第十二步:scrapy引擎收到爬虫处理后的信息之后,会同时进行过程(12)和过程(13),过程(12)将提取出来的项目实体item传递给实体管道,由实体管道(Pipeline)做进一步的信息处理,过程(13)是将提取出来的新的请求信息传递给调度器,由调度器对网址进一步传递

整个过程就是不断的重复过程(1)到过程(13),直到调度器没有可传递的网址为止

以下是我做的笔记

python爬虫scrapy框架基础_第2张图片

一.认识scrapy的目录结构

以我自己的一个项目为例,使用scrapy创建一个爬虫项目,他会同时生成一个与爬虫项目名称相同的文件夹,这里是spider1128(主文件夹后面我自己重命名了)python爬虫scrapy框架基础_第3张图片

同名子文件夹放置的是项目的核心代码,其中scrapy.cfg是爬虫项目的配置文件,spiders文件下,除了auto.py是自己创建的编写文件之外,其他都是创建项目时附带的。后面将会详细的讲解这些配置文件的作用

二.用scrapy进行项目的创建

1.2.创建项目命令 在软件的终端中使用这个命令 scrapy startproject 项目名

python爬虫scrapy框架基础_第4张图片

然后就可以在指定目录中找到这个项目啦~~~~

2.在项目路径下创建爬虫文件 scrapy genspider 文件名 域名

爬虫文件有basic crawl csvfeed xmlfeed 这几个模板,若要指定模板可用命令 scrapy genspider -t 模板 文件名 域名 若没有指定,则默认basic模板

我这里创建了bookdate这个爬虫文件,要爬取的域名为dangdang.com

-------------------------

python爬虫scrapy框架基础_第5张图片

这样整个项目已经创建好了,剩下就是编写代码的

---------------------------------

 三.运行爬虫软件

在终端输入命令 scrapy crawl 爬虫名字 运行即可

 

 

你可能感兴趣的:(python,爬虫,scrapy)