python多线程爬虫如何在中断后继续上次的断点下载数据

比如某个网站有几十万页的数据,爬虫经常会遇到各个异常

不可能每次异常后,都重新从首页下载数据

那么如何在某次中断后,继续上次的断点继续下载?

我试过在mysql上新建一个表格,来实时记录每一页数据的状态,比如某页开始下载是0,没成功是NaN,页面没有数据是-1,成功是1,共4个状态

但mysql数据库,在多线程的情况下,频繁读取数据库,会有异常,同时也觉得不安全

请问大神,有什么好的方案解决吗

 

redis记没成功的不就完事了,带同步访问,doge

除了插入操作,其他状态更新完全可以放在成功时再更新,未成功这部分内容标记直接放全局变量里管理即可,这样就不存在频繁读取数据库的问题了。即便下次启动,优先从数据库中读取状态,再挑未成功的分配线程处理就行。

你可每循环一次把他的那个递增值打印出来,第二次的时候就把开始的参数改一下不就行了?