我有一个在 spider_opened 处运行的管道以lastseen
从 mysql 中检索一个值,而该值又在以后的管道中用于测试我是否需要删除项目和/或关闭蜘蛛。该值必须保持不变,并且不能在蜘蛛会话期间更新。问题是:由于我在项目中有多个蜘蛛,我想在这个方法中包含一个项目字段,这甚至可能吗?我知道在管道运行时,蜘蛛刚刚打开并且没有返回任何项目,所以也许我需要不同的编码?
class DuplicatesPipeline(object):
def __init__(self):
dispatcher.connect(self.spider_opened, signals.spider_opened)
def spider_opened(self, spider):
query = """
mysql query that has a variable %s
"""
dbConn = MySQLdb.connect(#settings)
dictCursor = dbConn.cursor(MySQLdb.cursors.DictCursor)
dictCursor.execute(query, (item['catid'])) # need supply variable here
self.lastseen = dictCursor.fetchone()
dictCursor.close
dbConn.close()