背景
在使用手机模拟器抓取数据时,通过mitmproxy进行返回数据的解析存储。
因为不清楚mitmproxy在设置脚本后是一次开启还是每次请求都会运行一次,所以在脚本里直接开启了数据库连接并没有关闭。
写好脚本后,在爬取过程中,时间过久后会报错pymysql.err.InterfaceError: (0, ”)
在response方法里关闭数据库也没有什么用,甚至存不进数据库。
解决
在每次运行sql之前,ping一次,如果连接断开就重连。
db.ping(reconnect=True)
cur.execute(sql)
db.commit()