现在网站的安全性越来越高,并会通过分析用户的行为以及相关信息来判断该用户是否是自动爬虫并会将爬虫行为禁止。不同的网站判断依据也不同,有的根据ip、有的根据用户信息、有的根据访问频率等。因此,本文将具有针对性地介绍几种方法应对不同的情况。
1.禁止Cookie
有的网站会通过用户的Cookie信息堆用户进行识别和分析,如果将本地的Cookie信息让对方网站无法识别出会话信息,从而无法禁止爬取。对于Scrapy项目来说,可以通过在settings.py文件中进行相应的设置来实现禁用Cookie。如下图所示,默认将COOKIES_ENABLED属性注释了。
我们可以将注释取消,如下图所示,即可实现禁止Cookie。
2.设置DOWNLOAD_DELAY
有的网站会通过用户对网页访问的频率进行分析来判断是否为爬虫自动爬取行为,识别为爬虫行为后便会禁止爬取行为。面对这种情况,可以控制爬虫时间间隔,可以设置DOWNLOAD_DELAY属性来使爬取行为与正常访问无异。如下图所示,settings.py中将DOWNLOAD_DELAY属性注释了。