import scrapy



class MyBaseSpider(scrapy.Spider):

    def __init__(self, name=None, **kwargs):
        # 这里做了简化
        self.__dict__.update(kwargs)

    @classmethod
    def from_crawler(cls, crawler, *args, **kwargs):
        # 在scrapy里是这样定义的
        spider = cls(*args, **kwargs)
        spider._set_crawler(crawler)
        return spider



class TestSpider(MyBaseSpider):

    @classmethod
    def from_crawler(cls, crawler, *args, **kwargs):
        # 可以直接加入_dic,在scrapy是这样加入scrapy.settings到spider的属性里的
        # 下面加了_dic进去
        return cls(*args, **kwargs)


_dic = {"a":1,"b":2,"c":3}
t = TestSpider.from_crawler(crawler=None,**_dic)

print(t.__dict__)  # {'a': 1, 'b': 2, 'c': 3}
print(t.a)  # 1
print(t.b)  # 2
print(t.c)  # 3            
记录scrapy的spider初始化,在from_crawler里直接输入dict内容

 

posted @ 2018-11-03 00:46  fat39  阅读(108)  评论(0)    收藏  举报