Python是一種功能強大的編程語言,常常被用于網絡爬取。但是,在實際爬取過程中,我們需要考慮網站的反爬蟲策略,其中之一就是“延遲爬取”,即在爬取一定量數據后停留一段時間再進行下一次請求。下面我們將通過使用time
模塊實現延遲爬取。
import requests
import time
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
def get_data(url):
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
return None
url = 'https://example.com'
for i in range(10):
html = get_data(url)
print(html)
time.sleep(2) # 延遲2秒
在上述代碼中,我們使用requests
庫發送請求,并設置了用戶代理頭。然后定義了獲取數據的函數get_data
。在主程序中,我們循環爬取10次數據,每次請求后停留2秒。
通過這種方式,我們可以有效地避免被反爬蟲策略所攔截,從而成功爬取數據。