一些小的技巧配置,让我们的爬虫被识别的概率降低。
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
}