scrapy突破反爬的幾種方式(三)

weixin_34007886發表於2018-09-17

一些小的技巧配置,讓我們的爬蟲被識別的概率降低。

cookies 的禁用

在settings.py 檔案中有一個引數是:

COOKIES_ENABLED = False

預設情況下是禁用的,request 就不會把 cookies 帶進去。在一些不需要登入就能訪問的網站來說,這種方式是很好用的。

限速

scrapy 預設情況下在下載網頁的空隙是 0 的,也就是返回一個頁面,立刻就去下載了。
在 settings.py 檔案中有一個引數是:

DOWNLOAD_DELAY = 0

這個引數的意思是下載器在下載同一個網站下一頁面需要等待的時間,該選項可以用來限制爬取速度,減輕伺服器壓力。同時也支援小數。
那我們就知道了,在爬取過快的時候,適當限一下速,別讓翻車了就不好。
還有更多的限速相關的文件請參考scrapy官方文件 點這裡

settings

有些情況下,我們建立了幾個 spider ,共用一個 setting 檔案,可能有些spider 需要登入才能實現爬取,這是需要用到cookies 而另一些 spider 不需要登入就可以爬取到資料。這時我們可以在需要用cookies的spider檔案中重寫方法覆蓋settings裡的方法就可以了。
具體實現:在需要用cookies的spider中,新增以下程式碼:

custom_settings = {
          "COOKIES_ENABLED" : True
}

相關文章