资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python爬虫scrapy框架基础-创新互联

我使用的软件是pychram

创新互联凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、成都网站建设、成都网站制作、网站优化、软件开发、网站改版等服务,在成都10余年的网站建设设计经验,为成都上千中小型企业策划设计了网站。

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

scrapy框架运行的原理

首先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),直到调度器没有可传递的网址为止

以下是我做的笔记

一.认识scrapy的目录结构

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

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

二.用scrapy进行项目的创建

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

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

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

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

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

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

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

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

三.运行爬虫软件

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

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章题目:python爬虫scrapy框架基础-创新互联
本文路径:http://www.cdkjz.cn/article/gcghg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220