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 相关文章推荐
通过C++学习Python
Jan 20 Python
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
python方向键控制上下左右代码
Jan 20 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
python实现字符串加密成纯数字
Mar 19 Python
Python实现通过解析域名获取ip地址的方法分析
May 17 Python
django如何自己创建一个中间件
Jul 24 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
python 如何在list中找Topk的数值和索引
May 20 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中获取文件扩展名的N种方法小结
2012/02/27 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
微信支付开发交易通知实例
2016/07/12 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
python实现字符串和数字拼接
2020/03/02 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
素质拓展感言
2014/01/29 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
2014年民政工作总结
2014/11/26 职场文书
先进单位事迹材料
2014/12/25 职场文书
财务负责人岗位职责
2015/02/03 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
MySQL导致索引失效的几种情况
2022/06/25 MySQL