zoukankan      html  css  js  c++  java
  • Python.Scrapy.12-scrapy-source-code-analysis-part-2

    Scrapy 源代码分析系列-2 signals, signalmanager, project, conf

    1. 模块: signals.py signalmanager.py project.py conf.py

    1.1 conf.py project.py

    conf.py 是废弃的模块。她的功能由crawler.settings代替。 来自conf.py的代码如下:

    1 if 'scrapy.cmdline' not in sys.modules:
    2     from scrapy.utils.project import get_project_settings
    3     settings = get_project_settings()
    4 
    5 import warnings
    6 from scrapy.exceptions import ScrapyDeprecationWarning
    7 warnings.warn("Module `scrapy.conf` is deprecated, use `crawler.settings` attribute instead",
    8     ScrapyDeprecationWarning, stacklevel=2)

    project.py 也是被废弃的模块。

    1.2 interfaces.py

    interfaces.py 定义了接口ISpiderManager, 接口方法如下:

    def create(spider_name, **spider_args): 创建一个新的Spider对象。

    def list(): 返回project中所有的spider。

    def find_by_request(request): 处理request的sipder列表

    该模块依赖: zope.interface (zope.interface), 关于该库另外进行分析。

    1.3 signals.py signalmanager.py

    signals.py 定义了一系列object类型的对象。

    signalmanager.py 定义类SignalManager来管理signal。该类依赖 dispatcher 和 signal: 

    1 from scrapy.xlib.pydispatch import dispatcher
    2 from scrapy.utils import signal

    那么需要分析子包: scrapy.xlib

    To Be Continued

    接下来分析模块: item.py link.py linkextractor.py log.py logformatter.py exceptions.py extension.py 

  • 相关阅读:
    mysql读写分离
    mysql主从同步
    扫描与抓包
    加密与入侵检查
    监控
    selinux
    预期交互
    python发送邮件
    linux下安装虚拟环境
    博弈论
  • 原文地址:https://www.cnblogs.com/cwgk/p/4649154.html
Copyright © 2011-2022 走看看