比如某个网站有几十万页的数据,爬虫经常会遇到各个异常
不可能每次异常后,都重新从首页下载数据
那么如何在某次中断后,继续上次的断点继续下载?
我试过在mysql上新建一个表格,来实时记录每一页数据的状态,比如某页开始下载是0,没成功是NaN,页面没有数据是-1,成功是1,共4个状态
但mysql数据库,在多线程的情况下,频繁读取数据库,会有异常,同时也觉得不安全
请问大神,有什么好的方案解决吗
redis记没成功的不就完事了,带同步访问,doge
除了插入操作,其他状态更新完全可以放在成功时再更新,未成功这部分内容标记直接放全局变量里管理即可,这样就不存在频繁读取数据库的问题了。即便下次启动,优先从数据库中读取状态,再挑未成功的分配线程处理就行。
你可每循环一次把他的那个递增值打印出来,第二次的时候就把开始的参数改一下不就行了?