python循环定时中断执行某一段程序的实例
- 更新时间:2023-01-18 10:25:23
- 编辑:吴凯风
参考资料
- 编写高质量代码:改善Python程序的91个建议 PDF 电子书 / 54.9 MB / 张颖赖勇浩著 推荐度:
- Python编程快速上手:让繁琐工作自动化(第2版) PDF 电子书 / 145 MB / 阿尔•斯维加特 推荐度:
- Python并行编程参考手册 PDF 电子书 / 41.4 MB / 吉安卡洛·扎克尼 推荐度:
正文内容
问题说明
最近在写爬虫,由于单个账号访问频率太高会被封,所以需要在爬虫执行一段时间间隔后自己循环切换账号
所以就在想,有没有像单片机那样子设置一个定时中断,再定义一个中断入口,这样子每隔一段时间执行一次中断
当然不能用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 爬虫一键爬取淘宝天猫宝贝页面主图颜色图和详情图
今天小编就为大家分享一篇python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2020-01-26
-
python可变类型和不可变类型区别点总结
可变数据类型,变量名存储的是一个地址,该地址指向一个具体的对象,并且不管对变量的值即对象做怎么样的操作,都不会改变变量名存储的地址。不变数据类型的对象一旦发生改变,就会在
发布时间:2019-10-24
-
Python如何实现数据库连接
介绍了如何进行数据库连接
发布时间:2020-06-03
-
Python难学吗
python是一门面向对象的、开源的、简单易学的语言。如果有英语和数学基础,且能坚持学习,那么自学python完全没有问题;如果自制力和基础差一些,学起来可能会吃力,但是只要努力,就会有
发布时间:2020-03-12
-
总结python 多维切片之冒号和三个点的使用方法
下面小编就为大家分享一篇python 多维切片之冒号和三个点的用法介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2020-02-16
-
用Python来搭建一个简单的推荐系统实例讲解
这篇文章主要介绍了如何用Python来搭建一个简单的推荐系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
发布时间:2021-05-18
-
windows10安装python3.5 pip3图文详解
这次给大家带来在windows10里python3.5 pip3应该如何安装,在windows10里python3.5 pip3安装的注意事项有哪些,下面就是实战案例,一起来看一下。
发布时间:2020-03-05
-
Python中smtplib模块处理电子邮件的知识点
这篇文章主要介绍了举例详解Python中smtplib模块处理电子邮件的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
发布时间:2020-02-15