爬虫

scrapy的实现原理

1、爬虫引擎ENGINE获得初始请求开始抓取。

2、爬虫引擎ENGINE开始请求调度程序SCHEDULER,并准备对下一次的请求进行抓取。

3、爬虫调度器返回下一个请求给爬虫引擎。

4、引擎请求发送到下载器DOWNLOADER,通过下载中间件下载网络数据。

5、一旦下载器完成页面下载,将下载结果返回给爬虫引擎ENGINE。

6、爬虫引擎ENGINE将下载器DOWNLOADER的响应通过中间件MIDDLEWARES返回给爬虫SPIDERS进行处理。

7、爬虫SPIDERS处理响应,并通过中间件MIDDLEWARES返回处理后的items,以及新的请求给引擎。

8、引擎发送处理后的items到项目管道,然后把处理结果返回给调度器SCHEDULER,调度器计划处理下一个请求抓取。

9、重复该过程(继续步骤1),直到爬取完所有的url请求。


scrapy有什么优点和缺点

采取可读性更强的xpath代替正则 
强大的统计和log系统 
同时在不同的url上爬行 
支持shell方式,方便独立调试 
写middleware,方便写一些统一的过滤器 
通过管道的方式存入数据库

缺点:

scrapy默认的debug模式信息量太大,由于异步框架出错后是不会停掉其他任务的,也就是出错了还会接着跑。。。

Scrapy原生不支持js渲染,需要单独下载[scrapy-splash]

posted @ 2017-10-14 16:50  枫客&浪人  阅读(116)  评论(0编辑  收藏  举报