91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

谷城县| 上栗县| 徐汇区| 翼城县| 辽阳市| 灵丘县| 洪泽县| 乌恰县| 汉川市| 镇原县| 南昌市| 武定县| 沈阳市| 炎陵县| 东乌| 罗山县| 岗巴县| 镶黄旗| 米林县| 交口县| 莱州市| 中江县| 德令哈市| 昌平区| 紫云| 蒲城县| 班戈县| 乐业县| 抚松县| 安国市| 汉阴县| 寿光市| 获嘉县| 望都县| 巴青县| 石台县| 通州市| 凯里市| 航空| 广丰县| 甘德县|