我们在使用Python爬虫收集信息的时候,经常会被屏蔽,有时候会提示访问过于频繁,有时候还会返回一些错误代码等等,那么网站如何知道爬虫在收集信息呢?
由于互联网上的爬虫越来越多,而且大部分流量都是由爬虫贡献的,除了搜索引擎,其他爬虫的访问对网站并没有什么好处,同时也会影响网站的正常运行。糟糕的用户体验,那他们为什么这么受欢迎。
有时候,如果竞争对手收集数据,分析并得到一些有价值的数据,甚至会加上自己的竞争对手。
因此,对待这类爬虫的网站会被屏蔽,并且会建立一些反爬虫机制。爬虫抓取信息时,如果没有隐藏,则会打开网站的反爬虫设置,停止爬虫的行为。大多数网站都开发了这些反爬虫:
1.IP的检测。
也就是说,会检测到用户IP访问的速度。如果访问速度达到设定的阈值,就会开启限制,封杀IP,爬虫停止,无法再次获取数据。对于ip检测,可以使用ip模拟器代理ip,切换大量ip地址,突破限制。
2. 验证码检测。
设置登录验证码限制,并设置过快访问的验证码限制。如果您没有输入正确的验证码,您将无法再次访问该信息。由于爬虫可以利用其他工具识别验证码,网站不断增加验证码的难度,从普通的纯数据研究验证码发展到混合验证码,或者滑动验证码、图片验证码等。
3. 请求头检测。
爬虫不是用户,访问时没有其他特征。网站可以通过检测爬虫的请求头来检测对方是用户还是爬虫。
4. Cookie检测。
浏览器将保存Cookie,因此网站将通过检测Cookie来识别您是否是真正的用户。如果爬行器没有很好地伪装,它将触发限制访问。
这些都是网站知道爬虫在抓取数据的原因。随着技术的进步,网站不仅安装了上述的反爬虫,如果要抓取大量的数据,还需要突破基于网站上实际设置的反爬虫的限制。