自己辛辛苦苦做的站,但是没有任何防爬虫措施,一个新手都可以F12键几分钟就把爬虫写好了,自己想了一些防爬虫的方法:
把频繁访问的ip给ban了,但是这么做肯定会误伤搜索引擎,不可取,况且我写爬虫都是先爬代理池
用蜜罐法,robots.txt中写好禁止抓取的URL,然后把这个URL隐藏在文章列表页,凡是抓了这个URL的咱iptable见,但是这招貌似也烂大街了,一些人首先查看robots.txt看有没有蜜罐(比如我。。。),这个也不可取
php和客户端js公用一个加密解密函数,公用一个token,js通过token生成的cookie每次都要用PHP验证,这样能排除一些简单的PHP or Python爬虫,但是phantomjs等浏览器还是能执行js,虽然客户端or服务器端都能检测出headless浏览器的特征码,但是这种无头浏览器杀不完,杀完了估计也把googlebot误伤了
把自己的所有内容列表,只显示一部分,如Flickr任何搜索都只显示4000个结果,我也只显示1000条列表,多余的不输出结果了,但这样是否会伤及SEO?
上面的方法都不完美,也许彻底ban爬虫就是一个伪命题,但有没有一种相对最好的方法,不伤及SEO和Googlebot,同事最大限度的ban掉爬虫?
只能封ip,大公司ip段都是固定的。。。而且他们的抓取策略应该也有一定规律。