中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python循環定時中斷執行某一段程序的實例

發布時間:2020-10-01 20:53:50 來源:腳本之家 閱讀:290 作者:我要你的自然74 欄目:開發技術

問題說明

最近在寫爬蟲,由于單個賬號訪問頻率太高會被封,所以需要在爬蟲執行一段時間間隔后自己循環切換賬號

所以就在想,有沒有像單片機那樣子設置一個定時中斷,再定義一個中斷入口,這樣子每隔一段時間執行一次中斷

當然不能用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循環定時中斷執行某一段程序的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通州区| 平泉县| 凭祥市| 南宫市| 正镶白旗| 房山区| 晋宁县| 浦县| 乐亭县| 甘孜县| 宝丰县| 宁城县| 富顺县| 通河县| 达尔| 桐庐县| 合山市| 陵水| 浮山县| 禹城市| 德昌县| 晋城| 平果县| 界首市| 揭西县| 澄城县| 城固县| 天镇县| 宁德市| 商南县| 修武县| 嘉鱼县| 沙田区| 灵山县| 桑日县| 普陀区| 独山县| 若尔盖县| 永兴县| 栾城县| 大冶市|