【亡羊补牢】计算机网络灵魂之问 第7期 爬虫,网站如何去做防止,如何判断
作者:互联网
这是博主面向腾讯学习的面试题大整理系列,可以在如下github仓库Issues
中通过 Labels
标签分类查看相关内容,同时欢迎大家指正可能的错误并且提出自己的解答,希望大家学的鱼块,春秋招顺利!
传送门:https://github.com/Chocolate1999/Front-end-learning-to-organize-notes
往期精选:
- 【亡羊补牢】计算机网络灵魂之问 第1期 一道百度笔试题引发的血案 (有了IP地址和子网掩码,广播地址还求不出来?)
- 【亡羊补牢】计算机网络灵魂之问 第2期 常见状态码知道哪些? 304 403 405分别是什么
- 【亡羊补牢】计算机网络灵魂之问 第3期 http状态码 302 504分别代表什么意思
- 【亡羊补牢】计算机网络灵魂之问 第4期 响应状态码,200(from disk cache),200(from memory cache),304的区别
- 【亡羊补牢】计算机网络灵魂之问 第5期 POST和GET 的区别,除了长度,安全其他的
- 【亡羊补牢】计算机网络灵魂之问 第6期 http介绍一下,为什么http2.0不普及,websocket的基本指令,性能
爬虫,网站如何去做防止,如何判断
如何判断
下面介绍4中最常见的形式:
1.cookie检测
,浏览器是会保存cookie的,这样网站会根据检测cookie来识别你是否是真实的用户,若是爬虫没有伪装好,将会触发被限制网页访问网页访问。
同样网站是可以根据这些途径去监测是否有爬虫,爬虫工作者也都可以依照这原理去攻破。比如是利用IP检测的,我们就可以用代理IP来进行换IP处理。
2、锁IP检测
,即会检测到用户锁IP网页访问网页访问的速度,要是访问速度达到设置的阈值,便会开启限制,封锁IP,让爬虫中止了脚步,不能够重复获取信息。针对锁IP检测,(ipidea)大量优质资源高匿的安全保障可以很好的攻破限制。
3、验证码检测
,设置登陆验证码限制,另外还有过快网页访问设置验证码限制等,若是没有输入正确的验证码,将没法再获取到信息。由于爬虫是可以借助其他的工具识别验证码,故网站不断的加深验证码的难度,从普通的纯数据研验证码到混合验证码,或者滑动验证码,图片验证码等。
4、请求头检测
,爬虫并不是用户,在访问浏览时,如果没有其他的特征,网站是可以根据检测爬虫的请求头来检测对方到底是用户或者爬虫。
防爬虫
防爬虫,简单来说,就是在尽量减少对正常用户的干扰的情况下尽可能的加大爬虫的成本。
爬虫不仅会占用大量的网站流量,造成有真正需求的用户无法进入网站,同时也可能会造成网站关键信息的泄漏,所以为了避免这种情况发生网站开发工程师必须掌握相应的反爬虫技术。下面为大家提供几种可行的反爬虫方案:
1、通过user-agent来控制访问
ser-agent能够使服务器识别出用户的操作系统及版本、cpu类型、浏览器类型和版本。很多网站会设置user-agent白名单,只有在白名单范围内的请求才能正常访问。所以在我们的爬虫代码中需要设置user-agent伪装成一个浏览器请求。有时候服务器还可能会校验Referer,所以还可能需要设置Referer(用来表示此时的请求是从哪个页面链接过来的)。
2、通过IP来限制
当我们用同一个ip多次频繁访问服务器时,服务器会检测到该请求可能是爬虫操作。因此就不能正常的响应页面的信息了。当然这种反爬虫技术可以通过使用IP代理池来反反爬虫。网上就有很多提供代理的网站。
3、设置请求间隔
一般爬虫抓取网站时会制定相应的爬虫策略,但是有些恶意的爬虫会不间断的工具某个网站,面对这种情况,我们可以通过设计请求间隔来实现反爬虫,避免在爬虫短时间内大量的访问请求影响网站的正常运行。
4、自动化测试工具Selenium
Web应用程序测试的Selenium工具。该工具可以用于单元测试,集成测试,系统测试等等。它可以像真正的用户一样去操作浏览器(包括字符填充、鼠标点击、获取元素、页面切换),支持Mozilla Firefox、Google、Chrome、Safari、Opera、IE等等浏览器。
5、参数通过加密
某些网站可能会将参数进行某些加密,或者对参数进行拼接发送给服务器,以此来达到反爬虫的目的。这个时候我们可以试图通过js代码,查看破解的办法。或者可以使用"PhantomJS",PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器更高效。
6、通过robots.txt来限制爬虫
robots.txt是一个限制爬虫的规范,该文件是用来声明哪些东西不能被爬取。如果根目录存在该文件,爬虫就会按照文件的内容来爬取指定的范围。例如大家可以尝试方位淘宝的robots.txt文件:https://error.taobao.com/robots.txt
。可以看到淘宝对爬虫访问的限制。User-agent: *
表示禁止一切爬虫访问。
爬虫与反爬虫是互联网开发工程师之间的斗智斗勇。作为网站开发者即要掌握爬虫的技术,还要跟进一步去了解如何实现反爬虫。
参考:
通常网站是如何判断爬虫的?
常见的反爬虫技术有哪些?如何防止别人爬自己的网站?
【作者:Chocolate】https://chocolate.blog.csdn.net/
学如逆水行舟,不进则退
标签:网站,IP,验证码,之问,访问,爬虫,亡羊补牢 来源: https://blog.csdn.net/weixin_42429718/article/details/112387857