小白python爬虫学习4(scrapy初级入门)

scrapy 不是一个爬虫函数功能库,而是一个爬虫框架

那么爬虫框架是什么呢?

爬虫框架是个半成品,能够帮助用户实现专用网络爬虫,是实现爬虫功能的一个软件结构和功能组件,像是一个使用模板,约束稍小。

以下为Scrapy的"5+2"结构

有三条主要的数据流

1.spiders--->Engine---->Scheduler

其中Spider获取用户请求并通过Engine传递给Scheduler,而Scheduler负责对爬取请求进行调度

2.Scheduler---->Engine---->Downloader---->Engine----->Spiders

其中Engine从Scheduler获取下一个要爬取的请求,Engine获取到请求又通过中间件发送到Downloader模块,Downloader拿到请求就与互联网链接并爬取到相关网页,再将爬取的内容形成对象(Responses),再通过中间件Engine发送给Spiders

3.Spiders---->Engines------>Item Pipelines或到达Scheduler模块

Spiders获取响应(Response)之后产生两个爬取的相关类型一个是爬取项(Item),另一个是新的爬取请求(Requests)对应的将Item项发送给Item Pipelines模块,将Requests发送给Schedulers进行相关调度

从数据流的过程我们可以发现,这个框架的出口是Item Pipelines  而入口是Spiders,而在5+2的结构中ENGINE,DOWNLOADER,SCHEDULER都是已有实现,我们并不需要去编写他们

我们只需要编写这个出口和入口,也就是ITEM PIPELINES(负责对提取的信息进行后续处理)与 SPIDERS(用来为整个框架去提供要爬取的链接,同时解析要获得的内容)

 

之后来看一下各个部分的功能

 

Engine:控制所有模块之间的数据流,并根据条件触发事件

Downloader  :根据请求下载网页,不需要用户修改

Scheduler:对所有爬取请求进行调度管理,不需要用户修改

Downloader MIddleware   目的:实施Engine,Scheduler和Downloader之间进行用户可配置的控制。功能:修改,丢弃,新增请求或响应。可编写配置代码

Spiders 解析Downloader返回的响应(Response),产生爬取项(scraped item),产生额外的爬取请求(Request)

Item Pipeline 处理产生的信息,由一组操作顺序组成,类似流水线,需要用户配置

Spider Middleware 通过对修改,丢弃,新增对请求和爬取项的处理

 

 

 

 

 

 

 

 

Scrapy的常用命令

命令说明格式
startproject常见一个新工程scrapy startproject<name>[dir]
genspider 创建一个爬虫

scrapy genspider[options]<name><domain>

settings获取爬虫配置信息scrapy settings [options]
crawl运行一个爬虫scrapy crawl <spider>
list列出工程中所有爬虫scrapy list
shell启动url调试命令行scrapy shell [url]
   

生成器非常重要,yield可以将结果逐个返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值