zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    对象o o[name]和o['name']的差别
    数组转换为字符串
    函数和方法区别
    创建对象和构造函数的区别
    jQuery光源移动效果
    继承原型链
    javascript跨域
    prototype、constructor、__proto__
    寄生组合式继承
    组合继承
  • 原文地址:https://www.cnblogs.com/lucheng123/p/12569292.html
Copyright © 2011-2022 走看看