一、Scrapy结构及运作流程
1、组件结构及流程
I、Spider
Spider由自己定义爬虫逻辑,主要是编写Request以及处理Response。
II、Scheduler
Scheduler调度器,用于处理Spider提交的Request队列(优先级、去重等),可自己定制。
III、Downloader
下载器接收Scheduler任务后,向互联网发送Request,下载网络资源,接收Response。
IV、ItemPipeline
Spider在接收Response后进行处理,输出结果Item,由ItemPipeline进行最终处理及存储。
V、Middlewares
中间件主要分两个,一个是DownloaderMiddleware,一个是SpiderMiddleware。
可理解成Request与Response在整个Scrapy流程中的修改器。
2、文件结构
文件夹Spiders中包含自己定义的各个Spider,运行的时候可根据Spider名选择用哪个。
items.py 中定义了最终要输出的结果,相当于先给各个结果字段建个空列。
middlewares.py 中定义DownloaderMiddleware以及SpiderMiddleware。
pipelines.py 中定义结果流向、Item的处理方法、下载文件的处理方法等。
settings.py 中定义组件的优先级、数据库、延时、User-Agent等参数。