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 相关文章推荐
10款最好的Web开发的 Python 框架
Mar 18 Python
详细介绍Python中的偏函数
Apr 27 Python
django接入新浪微博OAuth的方法
Jun 29 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
Python求出0~100以内的所有素数
Jan 23 Python
Python装饰器用法实例总结
Feb 07 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
基于python实现百度翻译功能
May 09 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
python help函数实例用法
Dec 06 Python
Python入门基础之数字字符串与列表
Feb 01 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 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实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP微商城开源代码实例
2019/03/27 PHP
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
基于python实现操作git过程代码解析
2020/07/27 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
会计专业毕业生自我鉴定
2013/10/29 职场文书
自荐信的五个重要部分
2013/10/29 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
禁毒心得体会范文
2016/01/15 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript