基于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
请先 后发表评论~