Database Insertion Fails Without Error With Scrapy
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 into a sqll
Solution 1:
The code you posted is not working as is for me:
TypeError: __init__() takes exactly 2arguments (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:
@classmethoddeffrom_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)
Solution 2:
Maybe some problems with the Db connection. Put your this snippet into a try except to check for the problem.
try:
db_path = "sqlite:///"+settings.SETTINGS_PATH+"\\data.db"
db = dataset.connect(db_path)
self.table = db[table_name].table
except Exception:
traceback.exec_print()
Post a Comment for "Database Insertion Fails Without Error With Scrapy"