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內容
相關文章
相關標籤/搜索