目前服务器上几百个 G 的文件全都是静态文件下载地址,只要是幼儿园大班毕业的人都可以不费吹灰之力写个爬虫爬下来,如果想要彻底屏蔽爬虫,包括 Googlebot、bingbot 之类的全都屏蔽了,只允许普通用户用浏览器正常点击后下载,有哪些办法,我目前想了一些办法都不成熟:
- 用户注册登录后才能下载,注册页面加上 recaptcha,弊端就是一个“注册登录”会烦掉很多用户,况且 recaptcha 在大陆没法使用
- 输入验证码后下载,感觉繁琐而麻烦
- 客户端 js 生成一个 token 和服务器端 php 进行校对,这个能屏蔽很多 file_get_contents,但是对于 phantomjs 等无头浏览器无能为力
- Google 了一下有很多检验客户端是否为 headless 浏览器的方法,但感觉这些方法随着 phantomjs 不断升级都会不断失效,于是我在想对一个下载按钮比如:“点此下载文件”,每次点击记录鼠标的坐标,如果每次鼠标的坐标像素值( e.pageX 和 e.pageY )都一模一样,就判断为爬虫然后返回脏数据,就是不知道这种原理该怎样实现?用 cookie 来记录?
- 蜜罐法,这个貌似很不靠谱,因为我写爬虫第一时间都是去看它的 robots 有没有蜜罐
上面就当抛砖引玉吧,不知道各位 V 友有没有好点的办法?不胜感激