采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,您好。 我的疑问是一个登录的用户不可能短时间内频繁的切换User-Agent与IP,那么服务端是否可以通过这个机制来制定反爬策略?比如监测账户短时间内IP和User-Agent的变化次数,如果超过某个阈值,就把这个账户的访问识别为一个爬虫程序。 这样子反而导致我们的UA代理和IP代理成为服务端识别爬虫的手段,我们如果只设置下载延迟参数,控制爬取的速度,这样反反爬的效果是否会更好?
其实你如果作为一个开发者和网站你已经想到了一些反爬的措施,就是通过你这种方法来做,这样做看似可行,但是从另一个角度来讲这样做有不小的风险:
第一点:对于一个局域网来说(校园网和大量的网吧),这些局域网中的每个用户对外的ip都是同一个ip,这样你如何将用户和ip绑定起来?同一个用户绑定到同一个ip
第二点:很多局域网的ip都是动态分配的,比如一个小区的对外ip可能2个小时就变动一次,那么这样做那么因为ip变动了就说我是爬虫,这样不合理吧
通过上面你可以看到,很多看似很简单的反爬策略,为什么很多大公司居然不用,如果对http协议和计算机网络协议理解了的话就会发现背后的原因了,这些也是分析爬虫可行性和反爬可行性的理论依据
一个小区的对外ip可能2个小时就变动一次,但这变化周期还是比较长的,而我们的爬虫程序如果设置了IP代理池,那它变化的速度就快多了,一分钟可能就变化很多次。此时服务端认为这是一个爬虫程序,然后向它发出警告信息,说账户异常,通过让用户重新登录(而不是封IP)来制定反爬策略,这样风险是不是就降低很多?
理论上可以这样,但是即使这样也只能做提示,而不是直接封号,所以能看到很多网站经常会弹出验证码输入的逻辑。
好的,谢谢老师
登录后可查看更多问答,登录/注册
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
4.4k 30
2.3k 18
828 18
1.1k 15
2.1k 15