检测系统整体流程架构
scrapy爬取数据:根据具体的检索信息,比如书名,从互联网(淘宝/拼多多)上爬取信息,并将数据写入kafka。
大数据平台:接受kafka中的数据,借助redis做去重操后将可用数据存储
数据清洗:从大数据平台获取数据并进行分析,图片信息调用第三方接口做检测处理,对有用信息存入到mysql数据库
爬虫技术框架及使用
一,scrapy的架构图及说明
Spiders(爬虫):
它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)
Engine(引擎):
负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
Scheduler(调度器):
它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
Downloader(下载器):
负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理
ItemPipeline(管道):
它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.
Downloader Middlewares(下载中间件):
你可以当作是一个可以自定义扩展下载功能的组件。
Spider Middlewares(Spider中间件):
你可以理解为是一个可以自定扩展和操作引擎和Spider中间
二,scrapy的执行流程及说明
1,SPIDERS将request发送给ENGIN
2,ENGINE对request不做任何处理发送给SCHEDULER
3,SCHEDULER( url调度器),生成request交给ENGIN
4、ENGINE拿到request,通过MIDDLEWARE进行层层过滤发送给DOWNLOADER
5,DOWNLOADER在网上获取到response数据之后,又经过MIDDLEWARE进行层层过滤发送给ENGIN
6,ENGINE获取到response数据之后,返回给SPIDERS,SPIDERS的parse()方法对获取到的response数据进行处理,解析出items或者requests
7,将解析出来的items或者requests发送给ENGIN
8,ENGIN获取到items或者requests,将items发送给ITEMPIPELINES,将requests发送给SCHEDULER
三,scrapy在淘宝爬虫项目中的使用
1,在spider初始化时将selenium初始化及驱动加载,并做模拟登录
2,调度器将连接拼装好发给通过引擎调起下载中间件从网络获取数据
3,将获取的数据解析后通过pipeline 发送到kafka。