1

我有一个在 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()
4

0 回答 0