很多专业的爬虫工作者都会觉得爬虫的技术没有那么深奥,所谓万变不离其宗,在复杂也只是那些个东西,但是要想真正的写好一套完美的爬虫程序又似乎没有那么简单。
原因就在于爬虫本身的功能是不难的,真正显示技术的是应对反爬虫技术。说到反爬虫最简单的应对方式就是封锁IP。
那么为什么封锁IP是有效果的呢?
一次网页的请求含有很多的信息,比如UserAgent,比如Cookie。之所以说封锁IP最有效是因为其他的信息都可以进行伪造,但是唯独http的请求中是没有办法直接伪造IP的,
http协议基于tcp,而tcp协议存在握手机制的,这样你就根本美哟办法使用假的IP来链接。
那么如何封锁IP
我们从年龄比较大的论坛程序看起Discuz的反爬功能-防采集:
简单粗暴的制定规则,一个IP的访问次数就是几次,超过多少次就封锁。假设默认访问次数200次,那么也即是说一个IP超过200次的访问量就会被计入黑名单。
实现的方式比制定的方式还要粗暴,对于大部分语言来说,获取ip地址都是很简单的,获取到ip之后,将ip作为主键存入数据库中。
最后再加一个字段来记录访问次数就可以了。当然当我们每天ip数量很多的时候,我们可以考虑存入非关系型数据库中,毕竟我们只需要key-value形式的数据,用关系型数据库反倒浪费了。
3.我是爬虫,前方禁止通行,该位置已经封锁
爬虫和反爬虫世世代代都是冤孽,解决爬虫被封问题已经成为所有爬虫工作者毕竟的磨难,那么下面就说说IP怎么来的
1、自己建立IP爬虫渠道:可以,但是耗时耶消耗精力,你要是觉得你有那么经历你就弄
2、淘宝:也可以,但是重复率高了点,稳定性差了点,不敢保证安全性是不是很好
3、代理IP服务商:建议购买代理IP,市面上IP代理商比较多,安全性,稳定性也都可以保障。犀牛代理IP海量IP代理池,安全稳定,保障数据安全和上网隐私