- 基于Twisted的异步处理框架,纯python实现的爬虫框架
- 注释掉
settings.py
最后的5行
答:这几行注释的作用是,Scrapy会缓存你有的Requests!当你再次请求时,如果存在缓存文档则返回缓存文档,而不是去网站请求,这样既加快了本地调试速度,也减轻了 网站的压力。一举多得【但最好在第一次成功call通的情况下,再enable 这个选项】
整个数据处理流动过程:
- Engine 问 Spiders ,“你需要处理哪个url?”
- Spiders把将要处理的目标url告诉Engine
- Engine 向 Scheduler 打招呼,说:“我这里有一个url请求,你帮我把这个task 进行排队”
- Engine 不断主动问 Scheduler :“你有没有已经封装好request的task可以出队的? 有就拿给我,我叫人把它办了。”
- Scheduler 发现排队排到了,就将这个task出队,给到 Engine
- Engine 将 Scheduler扔过来的request ,转扔给Downloader去进行下载
- Downloader如果没有处理好,会发出反馈给到Engine,Engine 又需要把这个失败的request 扔给 Scheduler 重新入队。
- Downloader处理好了,response也会给到Engine,Engine将数据给到 Spider
- Spider 进行数据解剖,并判断有没有新的请求url, 一顿操作,拿出两部分数据:
- 干货:拿给Pipeline,进行数据的清洗和存储
- 新的url请求: 扔给Engine,重复上面步骤
- 在
items.py
中定义类,你要爬取什么数据,就定义相应的字段。 - 在
spiders
文件夹中定义自己的爬虫 - 在
pipelines.py
中存储自己的数据 - (可选) 改
settings.py