iT邦幫忙

0

[python] 爬蟲

請問爬蟲要隔多久request一次才安全?
我想應該每個網頁的限制不一樣,所以應該要問怎麼知道這限制是多少?

看更多先前的討論...收起先前的討論...
dragonH iT邦大師 1 級 ‧ 2019-09-18 20:32:19 檢舉
被 ban 了你才會知道XD

反正就不要太快

這也是個禮貌的表現
wrxue iT邦新手 5 級 ‧ 2019-09-18 20:33:53 檢舉
那請問有沒有經驗數值呢?不知道對網頁來說0.1秒算不算太快
dragonH iT邦大師 1 級 ‧ 2019-09-18 20:35:45 檢舉
0.1秒?

我覺得有點太快了

你的需求有必要這麼即時性嗎
wrxue iT邦新手 5 級 ‧ 2019-09-18 20:37:07 檢舉
作業裡面要爬蠻多文,且有時間限制,所以才想說能壓低就壓低,我目前是0.5秒爬一個文
dragonH iT邦大師 1 級 ‧ 2019-09-18 20:40:51 檢舉
如果你不是長期的那應該是沒啥差

就碰運氣吧
ccutmis iT邦高手 9 級 ‧ 2019-09-18 21:34:02 檢舉
根據我的經驗,要不被ban的建議間隔是 5到10秒
wrxue iT邦新手 5 級 ‧ 2019-09-18 21:41:00 檢舉
請問是同一個網頁嗎? 還是同一個網域不同網頁也是這樣
ccutmis iT邦高手 9 級 ‧ 2019-09-18 21:53:04 檢舉
我指的是同網域不同網頁(或網址包含分頁參數的),簡單來說就是假如你要爬abc.com.tw網站的所有頁面,你的每一次request.get(...)都要間隔5到10秒。
wrxue iT邦新手 5 級 ‧ 2019-09-18 21:55:12 檢舉
了解了 謝謝~
ccutmis iT邦高手 9 級 ‧ 2019-09-18 22:00:30 檢舉
不客氣~加油^^

1 個回答

3
阿展展展
iT邦研究生 2 級 ‧ 2019-09-19 07:15:56
最佳解答

當個有禮貌的爬蟲:
網路爬蟲可以同時進行大量的連線,如果在短時間內大量連接某個網站(網域),會讓伺服器成受不了而當機,而且過多的流量也會讓網站主吃不消

如果你的問題是...多久request一次才安全?
那如上所說,測到被 ban就對了

但其實更重要的是:你要爬什麼啊?

你爬的資料,你連線的方式,會影響到server的流量,而流量...就是錢啊
如果有更多的資訊的話,會更容易猜測出安全的 request 間格

以上淺見

wrxue iT邦新手 5 級 ‧ 2019-09-19 08:01:19 檢舉

個人的作業是要爬ptt,爬436個主頁,每個主頁有20個文章,要進文章去檢查有沒有發信站的符號,而且這些動作要在30分鐘內完成。若每個主頁休息1秒,文章之間休息0.2秒的話,我算出來是如下面這樣
436主頁 * 20文章 = 8720文章
436主頁 * 1秒休息時間 = 7分鐘
8720文章 * 0.2秒休息時間 = 29分鐘
總共最少要花 7+29 = 36分鐘

阿展展展 iT邦研究生 2 級 ‧ 2019-09-19 16:05:06 檢舉

如果時間是有限制的 那就從限制的條件(已知)去著手
30分鐘 436主頁 8720文章

克理獅 iT邦新手 4 級 ‧ 2019-09-19 21:01:58 檢舉

PTT確定會ban頻繁連線,但不會擋太久,具體忘記幾分鐘了
有時間的話,可以直接測試,被擋再調整間隔就好

我要發表回答

立即登入回答