class SunproPipeline:
connect = None
cursor = None
def open_spider(self,spider):
self.connect = pymysql.connect(host='127.0.0.1', port=3306, user='root', db='reptile', charset='utf8')
self.cursor = self.connect.cursor()
def process_item(self, item, spider):
if item.__class__.__name__ == 'SunproItem':
title_id = item['title_id']
title_name = item['title_name']
# print(title_id)
# print(title_name)
try:
print('正在存储',title_id)
print('正在存储',title_name)
self.cursor.execute(f'insert into sun (id,name) value("{title_id}","{title_name}");')
self.connect.commit()
print('存储成功')
except Exception as e:
print(e)
self.connect.rollback()
else:
new_id =item['new_id']
new_cont =item['new_cont']
# print(new_id)
# print(new_cont)
try:
print('正在存储',new_id)
print('正在存储',new_cont)
self.cursor.execute(f'update sun set cont="{new_cont}" where id="{new_id}";')
self.connect.commit()
print('存储成功')
except Exception as e:
print(e)
self.connect.rollback()
return item
def close_spider(self,spider):
print('*'*50,'程序结束')
self.connect.close()
在sql语句与commit上下打印语句,都正常执行了,但数据库中无数据,求解