最近在写爬虫,由于单个账号访问频率太高会被封,所以需要在爬虫执行一段时间间隔后自己循环切换账号
所以就在想,有没有像单片机那样子设置一个定时中断,再定义一个中断入口,这样子每隔一段时间执行一次中断
当然不能用睡眠,这样子整个进程就停在这了,而不是接着爬数据
用到线程的计时器,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下
进口线程 导入的时间 def change_user (): 打印(“这是中断,切换账号”) t=线程。change_user计时器(3) t.start () #每过3秒切换一次账号 t=线程。change_user计时器(3) t.start () 而真正的: 打印(“我在爬数据”) time . sleep (1)
<强>输出就像这样子:强>
我在爬数据 我在爬数据 我在爬数据 这是中断,切换账号 我在爬数据 我在爬数据 我在爬数据 这是中断,切换账号 以前我在爬数据>
再想想单独对于这个例子来说也是可以用睡眠的代码如下
进口线程 导入的时间 def change_user (): 而真正的: 打印(“这是中断,切换账号”) time . sleep (3) def蜘蛛(): 而真正的: 打印(“我在爬数据”) time . sleep (1) t1=threading.Thread(目标=change_user) 目标=t2=threading.Thread(蜘蛛) t2.start () t1.start () t2.join () t1.join ()因为两个线程再执行睡眠的时候会释放吉尔锁,被另一线程抢到吉尔锁,也可以实现定时切换账号,不过这个对于实际应用可以不太方便,所以推荐使用第一种方法
以上这篇python循环定时中断执行某一段程序的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
python循环定时中断执行某一段程序的实例