Python I';我试图存储多个spider';在MySQL中将结果存储到单独的表中

Python I';我试图存储多个spider';在MySQL中将结果存储到单独的表中,python,mysql,sql,web-scraping,scrapy,Python,Mysql,Sql,Web Scraping,Scrapy,这是我的管道。我有两只蜘蛛,一只叫bristol.py,一只叫bath.py。当我运行“scrapy crawl bristol”时,它会自动将结果添加到名为“bristol”的MySQL数据库表中。我希望运行“srapy crawl-bath”,并能够将结果存储在MySQL数据库中的表名“bath”下。我尝试为“Bristol”表添加完全相同的代码行,但收到一个错误。这是我试图直接放在第一个self.cursor.execute下面的代码 self.cursor.execute("""INSE

这是我的管道。我有两只蜘蛛,一只叫bristol.py,一只叫bath.py。当我运行“scrapy crawl bristol”时,它会自动将结果添加到名为“bristol”的MySQL数据库表中。我希望运行“srapy crawl-bath”,并能够将结果存储在MySQL数据库中的表名“bath”下。我尝试为“Bristol”表添加完全相同的代码行,但收到一个错误。这是我试图直接放在第一个self.cursor.execute下面的代码

self.cursor.execute("""INSERT INTO Bath(BathCountry, BathQualification) VALUES ('{0}', '{1}')""".format(item['BathCountry'], "".join([s.encode('utf8') for s in item['BathQualification']])))
当我尝试这一点时,我收到一个错误,有没有办法做到这一点?这就是错误所在

 exceptions.KeyError: 'BathCountry'
提前谢谢你的帮助

import sys
import MySQLdb
import MySQLdb.cursors
import hashlib
from scrapy.exceptions import DropItem
from scrapy.http import Request

class TestPipeline(object):

    def __init__(self):
        self.conn = MySQLdb.connect(
            user='user',
            passwd='password',
            db='db',
            host='host',
            charset='utf8',
            use_unicode=True
            )
        self.cursor = self.conn.cursor()

    def process_item(self, item, spider):
        try:
            self.cursor.execute("""INSERT INTO Bristol(BristolCountry, BristolQualification) VALUES ('{0}', '{1}')""".format(item['BristolCountry'], "".join([s.encode('utf8') for s in item['BristolQualification']])))
            self.conn.commit()
            return item

        except MySQLdb.Error as e:
            print "Error %d: %s" % (e.args[0], e.args[1])

请出示您的
项目
定义好吗?两个爬行器是否使用相同的
Item
类?您好,它们在这里,它们是否应该是单独的Item类?我将如何定义这一点。从scrapy.item import item,Field class QualificationItem(item):BristolQualification=Field(),BristolCountry=Field(),BathQualification=Field(),BathCountry=Field(),我现在将其更改为'self.cursor.execute(s)'之间的if和elif语句,它可以工作,但会跳过一些结果,在巴斯的例子中,它返回41行,而它应该返回50+(我不记得确切的数字),我可以看到它缺少一些国家。有什么建议吗?确保浴缸蜘蛛中的物品包含“BathCountry”