如何将参数或值传递给Python Scrapy Extension?

时间:2013-10-18 09:44:04

标签: python scrapy

我已经建立了一个Scrapy扩展。我从我的Scrapy项目的settings.py文件中调用我的扩展。现在我想将参数或值传递给此SpiderDetails类。我怎样才能做到这一点?我的settings.py文件代码如下:EXTENSIONS = {     'tellercoins.extensions.SpiderDetails':1000, }

1 个答案:

答案 0 :(得分:0)

定义你的蜘蛛

class MySpider(BaseSpider):

    name = 'myspider'

    def __init__(self, var, **kw):
        super(MySpider, self).__init__()
        self.var = var

定义您的扩展程序:

class SpiderDetails(object):

    def __init__(self):
        pass

    @classmethod
    def from_crawler(cls, crawler):
        o = cls()
        crawler.signals.connect(o.spider_opened, signal=signals.spider_opened)
        return o

    def spider_opened(self, spider):
        # access your variable here
        print spider.var

将您的变量传递给spider

$ scrapy crawl myspider -a var=value