我目前正在将SQLAlchemy与MySQL数据库配合使用,以保存来自scrapy的数据。
如果唯一键(url)已经存在,我很难理解并找到一种解决方案来更新数据。我已经找到了一些解决方案,但是找不到包括它的方法。
我已经从这里尝试了很多解决方案,但是不知道如何集成它们:
def process_item(self, item, spider):
session = self.Session()
quotedb = QuoteDB()
quotedb.titel = item["titel"]
quotedb.description = item["description"]
quotedb.url = item["url"]
quotedb.last_updated = item["last_updated"]
try:
session.add(quotedb)
session.commit()
except:
session.rollback()
raise
finally:
session.close()
return item
当前我得到重复的输入错误:
IntegrityError:(pymysql.err.IntegrityError)(1062,u“重复项 “ https://www.example.com/quote.html”代表关键字“ url””)
如果url(唯一键)已经存在,我想用新值更新/替换item.titel
,item.description
和item.last_updated
在其他情况下,通常应该添加它。