采集就是使用站群程序通过自动化操作复制资料。
首先说明,只要是能让浏览器访问的,就没有不能采集的。
但是可以通过一定的手段让采集变得非常麻烦,进而在大量资料的情况下延迟采集完成时间,加大采集难度。
一般的情况略过不说,几种情况比较特别的:
1 、验证来路,cookie,session 这些,比如 PHP 可以用 fsockopen 自定义 HTTPHeader,基本上这些方法没什么效果。
2 、限速,限制某段时间内开启页面数量。这个只是推迟了下,大部分时间效果一般。比如某站限制一分钟之内只能开启 30 个网页,页面大小平均 30K,则用迅雷批量下载就 OK 了,设定限速为 2K,一觉醒来什么都好了。这个方法效果也基本没有。
3 、比较特别的方法,设定一个数量级的阀值,达到这样数量后,必须验证方能继续,比如开启 10 个页面需要输入验证码,这个时候只需要保证验证码不可识别,分配一个 session,以后的浏览过程中用 session 保证多用户合法性,这样不影响后续访问,同时可以有效防止采集。
4 、第三条对蜘蛛是致命的,此时可通过手机蜘蛛 IP 段,放行,其它的按照严格规则来。
5 、 3+4 真是无敌的吗? 远非可以高枕无忧,比如此站有 10 万个页面,则设定 100 个代理,在阀值前回圈使用代理,这样实际上绕过了 3 的限制。
6 、还有别的办法吗? 不能,因为你的网站能用浏览器开启。