Database insertion fails without error with scrapy

前端 未结 2 399
Happy的楠姐
Happy的楠姐 2021-01-25 18:41

I\'m working with scrapy and dataset (https://dataset.readthedocs.io/en/latest/quickstart.html#storing-data) which is a layer on top of sqlalchemy , trying to load data

2条回答
  •  自闭症患者
    2021-01-25 19:10

    The code you posted is not working as is for me:

    TypeError: __init__() takes exactly 2 arguments (1 given)
    

    That's because the __init__ method expects a table_name argument which is not being passed. You need to implement the from_crawler class method in the pipeline object, something like:

    @classmethod
    def from_crawler(cls, crawler):
        return cls(table_name=crawler.spider.name)
    

    That would create a pipeline object using the spider name as table name, you can of course use any name you want.

    Also, the line self.table = db[table_name].table should be replaced by self.table = db[table_name] (https://dataset.readthedocs.io/en/latest/quickstart.html#storing-data)

    After that, the data is stored:

提交回复
热议问题