基于scrapy框架延时和自动限速、禁用cookie来攻破反爬虫的限制

为什么我们要学习【禁用cookie】+【设置下载延时和自动限速】呢?

可以这样说,我们作为爬虫方,第一件要做的事情就是伪装自己,让网站识别不了我们是爬虫方的身份。

cookie的功能是记录我们登录网站的一举一动,这样很容易被网站的服务器发现,发现了,我们就会被拒绝连接网站,所以我们要禁用cookie。

如果我们无限速、无延时下载文件的话,就很容易被网站识别我们是在恶意攻击它的服务器,从而给它的服务器带来很大的负担,这显然是别人网站不能接受的事情,所以网站就会拒接我们的连接,所以要设置下载延时和自动限速。

下面开始讲解【禁用cookie】+【设置下载延时和自动限速】:

禁用cookie、设置下载延时和自动限速都是在settings.py文件中设置的。

1.禁用cookie

什么情况下可以禁用cookie呢?在爬取不需要登陆的网站时就可以禁用cookie。

首先在settings.py文件找到如下图的内容:

然后,将#COOKIES_ENABLED = False的注释去掉,如下图:

这样禁用cookie就设置好了。

2.设置下载延时和自动限速

(1)设置下载延时:

首先在settings.py文件中找到如下图的内容:

然后,代码中的3代表延时3秒,将#DOWNLOAD_DELAY = 3的注释去掉就可以设置下载延时的间隔了,间隔为3秒,可以自定义。如下图所示:

(2)设置自动限速

首先在settings.py文件中找到如下图的内容:

然后,将需要修改的地方的注释去掉,如下解释:

设置自动限速
# See https://doc.scrapy.org/en/latest/topics/autothrottle.html
(1)启动AutoThrottle扩展 
AUTOTHROTTLE_ENABLED = True
(2)初始化下载延迟(以秒为单位)The initial download delay
AUTOTHROTTLE_START_DELAY = 5
(3)在高延迟的情况下要设置的最大下载延迟(以秒为单位)。
AUTOTHROTTLE_MAX_DELAY = 60
(4)
AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
(5)启用AutoThrottle调试模式,该模式将显示收到的每个响应的统计信息,
以便您可以查看如何实时调整限制参数。
AUTOTHROTTLE_DEBUG = False

今天的内容分享就到这里了,希望能对读者有所帮助,喜欢的朋友可以关注、转发一下喔,谢谢大家的支持。

举报
评论 0