将 table 名称传递给管道 scrapy python
passing table name to pipeline scrapy python
我有不同的蜘蛛抓取相似的值,我想将抓取的值存储在不同的 slite3 tables 中。我可以通过为每个蜘蛛使用不同的管道来做到这一点,但是,由于唯一改变的是 table 名称,是否有可能以某种方式将 table 名称从蜘蛛传递到管道?
这是我用来创建 table:
的代码
def open_spider(self, spider):
self.connection = sqlite3.connect("database.db")
self.c = self.connection.cursor()
try:
self.c.execute('''
CREATE TABLE IF NOT EXISTS table_name(
value1 TEXT,
value2 TEXT,
value3 TEXT
)
''')
self.connection.commit()
是的,像这样吗?
def open_spider(self, spider):
self.connection = sqlite3.connect("database.db")
self.c = self.connection.cursor()
querystring = f"
CREATE TABLE IF NOT EXISTS {spider.name} (
value1 TEXT,
value2 TEXT,
value3 TEXT
)
"
try:
self.c.execute(querystring)
self.connection.commit()
我有不同的蜘蛛抓取相似的值,我想将抓取的值存储在不同的 slite3 tables 中。我可以通过为每个蜘蛛使用不同的管道来做到这一点,但是,由于唯一改变的是 table 名称,是否有可能以某种方式将 table 名称从蜘蛛传递到管道? 这是我用来创建 table:
的代码def open_spider(self, spider):
self.connection = sqlite3.connect("database.db")
self.c = self.connection.cursor()
try:
self.c.execute('''
CREATE TABLE IF NOT EXISTS table_name(
value1 TEXT,
value2 TEXT,
value3 TEXT
)
''')
self.connection.commit()
是的,像这样吗?
def open_spider(self, spider):
self.connection = sqlite3.connect("database.db")
self.c = self.connection.cursor()
querystring = f"
CREATE TABLE IF NOT EXISTS {spider.name} (
value1 TEXT,
value2 TEXT,
value3 TEXT
)
"
try:
self.c.execute(querystring)
self.connection.commit()