Scrapy学习

Scrapy的工作流程

  1. 从优先级队列中获取request对象,交给engine

  2. engine将request对象交给下载器下载,期间会通过downloadmiddleware的process_request方法

  3. 下载器完成下载,获得response对象,将该对象交给engine,期间会经过downloadmiddleware的process_response( )方法

  4. engine将获得的response对象交给spider进行解析,期间会经过spidermiddleware的process_spider_input()的方法

  5. spider解析下载器下下来的response,返回item或是links(url)

  6. item或者link经过spidermiddleware的process_spider_out( )方法,交给engine

  7. engine将item交给item pipeline ,将links交给调度器

  8. 在调度器中,先将requests对象利用scrapy内置的指纹函数生成一个指纹4

  9. 如果requests对象中的don‘t filter参数设置为False,并且该requests对象的指纹不在信息指纹的队列中,那么就把该request对象放到优先级队列中

  10. 循环以上操作

各个文件的作用

  1. pipelines.py:

    1. 数据清洗(处理数据)

    2. 存储(把数据存储起来,也可以是直接打印在控制台)

  2. 爬虫文件:

    1. 寻找item.py里面的数据并yield出去

    2. 回调爬虫的解析函数完成下一次爬取...(循环)

  3. item.py:

    1. 写入所需要的数据

*部分参考自https://www.cnblogs.com/sharepy/p/9534597.html

相关推荐