笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

设置

发布者: 笨鸟自学网



1。命令行选项

命令行提供的参数是最优先的参数,覆盖了任何其他选项。您可以使用 -s (或) --set )命令行选项。

例子::

scrapy crawl myspider -s LOG_FILE=scrapy.log

2。每个蜘蛛的设置

蜘蛛(请参阅 蜘蛛 章节以供参考)可以定义其自己的设置,这些设置将优先于并覆盖项目设置。它们可以通过设置它们的 custom_settings 属性::

class MySpider(scrapy.Spider):
    name = 'myspider'

    custom_settings = {
        'SOME_SETTING': 'some value',
    }

三。项目设置模块

项目设置模块是碎屑项目的标准配置文件,它将填充大部分自定义设置。对于标准的Scrapy项目,这意味着您将在 settings.py 为项目创建的文件。

4。每个命令的默认设置

各 Scrapy tool 命令可以有自己的默认设置,这将覆盖全局默认设置。这些自定义命令设置在 default_settings 命令类的属性。

5。默认全局设置

全局默认值位于 scrapy.settings.default_settings 并记录在 内置设置参考 部分。

导入路径和类

2.4.0 新版功能.

当设置引用要由scray导入的可调用对象(如类或函数)时,可以使用两种不同的方法指定该对象:

  • 作为包含该对象的导入路径的字符串

  • 作为对象本身

例如::

from mybot.pipelines.validate import ValidateMyItem
ITEM_PIPELINES = {
    # passing the classname...
    ValidateMyItem: 300,
    # ...equals passing the class path
    'mybot.pipelines.validate.ValidateMyItem': 300,
}

注解

不支持传递不可调用的对象。

如何访问设置

在Spider中,可以通过 self.settings ::

class MySpider(scrapy.Spider):
    name = 'myspider'
    start_urls = ['http://example.com']

    def parse(self, response):
        print(f"Existing settings: {self.settings.attributes.keys()}")

注解

这个 settings 属性是在蜘蛛初始化之后在蜘蛛基类中设置的。如果您想在初始化之前使用这些设置(例如,在您的爬行器中 __init__() 方法),则需要重写 from_crawler() 方法。

可以通过访问 scrapy.crawler.Crawler.settings 传递给的爬网程序的属性 from_crawler 扩展、中间商和项目管道中的方法:

class MyExtension:
    def __init__(self, log_is_enabled=False):
        if log_is_enabled:
            print("log is enabled!")

    @classmethod
    def from_crawler(cls, crawler):
        settings = crawler.settings
        return cls(settings.getbool('LOG_ENABLED'))

设置对象可以像dict一样使用(例如, settings['LOG_ENABLED'] ,但通常最好使用 Settings 应用程序编程接口。


上一篇:链接提取器下一篇:例外情况

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2025-1-22 23:39 , Processed in 0.045525 second(s), 17 queries .

© 2001-2020

返回顶部