python循环定时中断执行某一段程序的实例

 更新时间:2019年06月29日 10:00:16   作者:我要你的自然74  
今天小编就为大家分享一篇python循环定时中断执行某一段程序的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

问题说明

最近在写爬虫,由于单个账号访问频率太高会被封,所以需要在爬虫执行一段时间间隔后自己循环切换账号

所以就在想,有没有像单片机那样子设置一个定时中断,再定义一个中断入口,这样子每隔一段时间执行一次中断

当然不能用sleep,这样子整个进程就停在这了,而不是接着爬数据

解决方法

用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下

import threading
import time
def change_user():
  print('这是中断,切换账号')
  t = threading.Timer(3, change_user)
  t.start()
#每过3秒切换一次账号
t = threading.Timer(3, change_user)
t.start()
while True:
  print('我在爬数据')
  time.sleep(1)

输出就像这样子:

我在爬数据
我在爬数据
我在爬数据
这是中断,切换账号
我在爬数据
我在爬数据
我在爬数据
这是中断,切换账号
我在爬数据

现在问题就解决啦!

再想想单独对于这个例子来说也是可以用sleep的,代码如下

import threading
import time
def change_user():
  while True:
    print('这是中断,切换账号')
    time.sleep(3)
def spider():
  while True:
    print('我在爬数据')
    time.sleep(1)
t1 = threading.Thread(target=change_user)
t2 = threading.Thread(target=spider)
t2.start()
t1.start()
t2.join()
t1.join()

因为两个线程再执行sleep的时候会释放GIL锁,被另一线程抢到GIL锁,也可以实现定时切换账号,不过这个对于实际应用可以不太方便,所以推荐使用第一种方法

以上这篇python循环定时中断执行某一段程序的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中的if、else、elif语句用法简明讲解

    Python中的if、else、elif语句用法简明讲解

    这篇文章主要介绍了Python中的if、else、elif语句的用法讲解,条件判断语句是程序中流程控制的基础办法之一,需要的朋友可以参考下
    2016-03-03
  • Python网络编程之ZeroMQ知识总结

    Python网络编程之ZeroMQ知识总结

    这篇文章主要介绍了Python网络编程之ZeroMQ知识总结,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Python ndarray 数组的变形详情

    Python ndarray 数组的变形详情

    这篇文章主要介绍了Python ndarray数组的变形详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Python爬虫库requests获取响应内容、响应状态码、响应头

    Python爬虫库requests获取响应内容、响应状态码、响应头

    上一节我们给大家介绍了Python爬虫库requests的发送请求传参等使用方法,今天为大家介绍下requests获取响应内容、响应状态码、响应头等相关信息
    2020-01-01
  • Gradio机器学习模型快速部署工具接口状态

    Gradio机器学习模型快速部署工具接口状态

    这篇文章主要为大家介绍了Gradio机器学习模型快速部署工具接口状态的原文翻译,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Python中字典常用操作的示例详解

    Python中字典常用操作的示例详解

    字典是Python必用且常用的数据结构,本文主要为大家梳理了一下常用的字典操作:初始化、合并字典、字典转Pandas等,需要的可以参考一下
    2022-05-05
  • pytorch loss反向传播出错的解决方案

    pytorch loss反向传播出错的解决方案

    这篇文章主要介绍了pytorch loss反向传播出错的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • Python 实现在文件中的每一行添加一个逗号

    Python 实现在文件中的每一行添加一个逗号

    下面小编就为大家分享一篇Python 实现在文件中的每一行添加一个逗号,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • django中使用Celery 布式任务队列过程详解

    django中使用Celery 布式任务队列过程详解

    这篇文章主要介绍了django中使用Celery 布式任务队列实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 使用python编写监听端

    使用python编写监听端

    这篇文章主要为大家详细介绍了使用python编写监听端,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04

最新评论