并不是原创了,把知乎Ehco老哥的lazyspider拿来改了,原网站https://zhuanlan.zhihu.com/p/32159453
修改了下报错、查询语句,具体看代码
import pymysql class LazyMysql(): def __init__(self, configs): #初始化账户密码之类 self.configs = configs self.connect() def connect(self): #相当于选定用户、数据库 connection = pymysql.connect( host=self.configs['host'], user=self.configs['user'], password=self.configs['password'], db=self.configs['db'], charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) return connection def query(self, sql): #输入sql语句,连接、操作sql、提交、关闭 '''query没问题时提交返回fetchall,出问题就返回-1''' try: connection=self.connect() with connection.cursor() as cursor: cursor.execute(sql) connection.commit() res = cursor.fetchall() #直接使用query时,可以返回table全部的值,是个list return res except Exception as e: raise ValueError('输入表名/列名不对!: %s' % e) finally: connection.close() def save_one_data(self, table,data): '''插入一条数据, data:dict,table:str 列名不对,query会报错;数据有问题,报错; 成功fetchall不会返回的''' fields = '' values = '' datas = {}