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


Posted in Python onJune 29, 2019

问题说明

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

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

当然不能用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 相关文章推荐
Python多线程实例教程
Sep 06 Python
基于Python实现文件大小输出
Jan 11 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
python 字符串只保留汉字的方法
Nov 16 Python
详解python校验SQL脚本命名规则
Mar 22 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
Python Django view 两种return的实现方式
Mar 16 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 Python
python顺序执行多个py文件的方法
Jun 29 #Python
如何使用python把ppt转换成pdf
Jun 29 #Python
对Python的交互模式和直接运行.py文件的区别详解
Jun 29 #Python
使用python搭建服务器并实现Android端与之通信的方法
Jun 28 #Python
python全栈要学什么 python全栈学习路线
Jun 28 #Python
使用python 写一个静态服务(实战)
Jun 28 #Python
python适合人工智能的理由和优势
Jun 28 #Python
You might like
php 破解防盗链图片函数
2008/12/09 PHP
php中apc缓存使用示例
2013/12/25 PHP
destoon各类调用汇总
2014/06/20 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
Python3标准库总结
2019/02/19 Python
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
精彩的推荐信范文
2013/11/26 职场文书
新春联欢会主持词
2014/03/24 职场文书
大学学风建设方案
2014/05/04 职场文书
幼儿园保育员责任书
2014/07/22 职场文书
上党课的心得体会
2014/09/02 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
2014年英语教学工作总结
2014/12/17 职场文书