1. 程式人生 > 實用技巧 >python 爬蟲中常需要睡眠防止被封IP time sleep

python 爬蟲中常需要睡眠防止被封IP time sleep

1.概率分佈睡眠

使用正態分佈模擬範圍波動的時間,更真實
正態分佈是一種連續型概率分佈,在自然界中很常見,如身高、壽命、考試成績等,屬於各種因素相加對結果的影響。

import time
import random

def random_sleep(mu=1, sigma=0.4):
    '''正態分佈隨機睡眠
    :param mu: 平均值
    :param sigma: 標準差,決定波動範圍
    '''
    secs = random.normalvariate(mu, sigma)
    if secs <= 0:
        secs = mu  # 太小則重置為平均值
    time.sleep(secs)

μ=1, σ=0.4
執行結果:
0.7064196787554182
1.2534987046066317
0.9947152762545793
0.6406594468142128
1.1230730100881552
1.3657589217334918
0.352417427623824
1.060297589921571
1.16466426576179
1.6256129468167888

2.隨機小數

import random
t = random.random() #隨機大於0 且小於1 之間的小數
time.sleep(t)

結果:
0.9441832228391154

import random
t = random.uniform(0,9)   #隨機一個大於0小於9的小數
time.sleep(t)

結果:
7.646583891572416

3.隨機整數

t = random.randint(1,5)  #隨機一個大於等於1且小於等於5的整數
time.sleep(t)

結果:
5
``python
t = random.randrange(1,10,2) #隨機一個大於等於1且小於等於10之間的奇數,其中2表示遞增基數
time.sleep(t)

結果:
3

###4.迴圈輸出休眠1秒
```python
import time
i = 1
while i = 3:
    print(i) # 輸出i
    i += 1
    time.sleep(1) # 休眠1秒

5.迴圈輸出休眠100毫秒

import time
i = 1
while i = 3:
    print(i) # 輸出i
    i += 1
    time.sleep(0.1) # 休眠0.1秒