1. 程式人生 > 程式設計 >對目標網站 7 天內發起百萬次 api 請求,是攻擊還是正常請求?

對目標網站 7 天內發起百萬次 api 請求,是攻擊還是正常請求?

關鍵詞:

爬蟲,大資料,程式設計

描述:

目前準備爬取一家目標網站的公開資料,預測將累計發起 120 萬次 api 請求,每個爬蟲指令碼都是單程式、單執行緒。把想要爬取的資料,按關鍵欄位(如id)拆分多段(每段為 10000 條資料),分別安排給不同的爬蟲同時爬取。這些爬蟲,我稱之為爬蟲群。爬取到的資料我都儲存在本地的mysql中。

我是如何實現爬蟲群呢?用的是 jupyter lab,建立N個 .ipynb 檔案,每個檔案建立一個 cell,並把初始爬蟲指令碼拷貝進去,並修改關鍵引數(如起始id),然後啟動該cell,即啟用該爬蟲。

如果計劃 7 * 24 小時執行完成爬取工作,那麼 1200000/(7*24*60*60) = 1.984 秒,為平均每次請求的間隔。每個爬蟲指令碼每次請求的響應和處理時間,約為20秒,那麼至少同時開啟10個爬蟲指令碼,才能按計劃完成。

疑問:

這個請求量,對目標網站,是攻擊,還是正常?

思路:

1、爬蟲的倫理:不應對目標網站的業務產生幹擾或影響,也不應爬取目標網站未公開資料。

2、爬蟲的效能:要計算和掌握自己的爬蟲群的效能,並根據目標網站的業務判斷該效能是否超出目標網站的承受範圍。爬蟲群的效能,一方面是對目標網站產生的流量,一方面是本地流量與IO讀寫,記憶體、CPU等一般沒啥問題。

3、爬蟲的安全:一方面考慮來自目標網站的反爬,另一方面考慮倫理。

結論:

1、爬蟲群本地效能無壓力。

2、目標網站的業務量並不大,當前爬蟲群的請求頻次明顯過高,應至少削減至少一半以上。


這篇文章的 PRESS.one 簽名: press.one/file/v?s=50…