def process_item(self, item, spider):
keys, values = zip(*item.items())
sql = "INSERT INTO `{}` ({}) VALUES ({}) ON DUPLICATE KEY UPDATE {}".format(
self.table_name,
','.join(keys),
','.join(['%s'] * len(values)),
','.join(['`{}`=%s'.format(k) for k in keys])
)
self.cur.execute(sql, values * 2)
self.conn.commit()
print(self.cur._last_executed)
return item
ON DUPLICATE KEY UPDATE意思是插入相同的不插入,不同时则更新数据