目前服务器上几百个 G 的文件全都是静态文件下载地址,只要是幼儿园大班毕业的人都可以不费吹灰之力写个爬虫爬下来,如果想要彻底屏蔽爬虫,包括 Googlebot、bingbot 之类的全都屏蔽了,只允许普通用户用浏览器正常点击后下载,有哪些办法,我目前想了一些办法都不成熟:
上面就当抛砖引玉吧,不知道各位 V 友有没有好点的办法?不胜感激
|  |      1jugelizi      2017-11-12 10:30:05 +08:00 只能说过滤大部分 没有技术能百分百 js 生成动态下载链接 一次性 复制出来过期就失效 | 
|  |      3jamfer      2017-11-12 10:37:46 +08:00 给下载链接生成一次性下载地址,XX 分钟后失效 | 
|  |      4xmcp      2017-11-12 10:37:53 +08:00 via iPhone recaptcha 在大陆可以用,参见 waifu2x.udp.jp 。此贴终结。 | 
|  |      5dong3580      2017-11-12 10:43:35 +08:00 via Android 一次性 hash 链接,后端给出链接下载,链接一旦生成在请求就失效了,所以你需要一个表记录。 | 
|  |      7Kilerd      2017-11-12 10:51:21 +08:00  2 phantomjs 使用得恰当,跟真人访问无差。 如果楼主找到一个能防 phantom 的方法,请麻烦告诉我一下,谢谢 | 
|  |      8skyjerry      2017-11-12 10:51:49 +08:00 via iPhone 点击下载弹出 confirm 哈哈 | 
|      9kimown      2017-11-12 10:56:02 +08:00 via Android 简化注册登陆流程,比如说只支持微信扫码登陆,虽然本人极为讨厌这种方法,但可以解决问题 | 
|  |      10fiht      2017-11-12 11:07:10 +08:00 上个滑动验证码能解决很大一部分爬虫。---别的都是扯淡 | 
|  |      11crab      2017-11-12 11:12:23 +08:00 手机发短信才能获取一次性 hash 下载链接。 | 
|      12alvinbone88      2017-11-12 11:16:37 +08:00  2 | 
|      13vicki      2017-11-12 11:18:59 +08:00 via iPhone 做 ip 时间 次数等限制 | 
|  |      14lianyue      2017-11-12 11:21:25 +08:00 一个 ip  x (分钟,小时,天)内下载数量 超过 x 次 加验证码就好了 ,, 拖拽验证的那种或者  ReCaptcha | 
|      15zea      2017-11-12 12:09:36 +08:00 "幼儿园大班毕业"这个有点…… | 
|  |      16opengps      2017-11-12 12:11:58 +08:00 ua 信息过滤,reffer 过滤,ip 过滤(排斥来自阿里云腾讯云的网段),下载链接有效期设置等方法 | 
|  |      17won      2017-11-12 12:12:31 +08:00 中间加个 token 服务器,被破解了就换 token | 
|  |      18colincat      2017-11-12 12:18:06 +08:00 via iPhone 滑动验证码 | 
|      19xeis      2017-11-12 12:30:41 +08:00 via Android  1 后台用不显示的字符混淆链接,发到前端,只允许复制,不可以点击 | 
|  |      20wk110      2017-11-12 12:38:00 +08:00 做一个限制搜索引擎的 roobts,限制在你的那个下载文件的目录里。这样可能会好一点,针对所有爬虫 | 
|  |      21chinvo      2017-11-12 12:38:15 +08:00  2 Invisible ReCaptcha + user-agent, refer, ip (asn) 过滤 + 一次性 token + js 动态输出地址 你还可以丧心病狂地把 ReCaptcha 换成门罗币挖矿“验证码” 至于 phantomjs,说实话一切技术手段只能增加获取难度而不能完全杜绝。 | 
|  |      22chinvo      2017-11-12 12:40:21 +08:00 至于你说的点击坐标问题,那就是 Invisible ReCaptcha 做的工作。 而且你自己实现简单的判断,爬虫里面加个 random 函数就废了。 所以还是信任 ReCaptcha 吧。 另外 ReCaptcha 的 api,把 google.com 替换成 recaptcha.net 可在国内正常工作。 | 
|  |      23picone      2017-11-12 13:01:59 +08:00 via iPad 除了楼上的,还可以 频率限制,正常用户不会下载那么多资源 又或者下载要付出代价,比如积分 | 
|  |      24stanjia      2017-11-12 13:23:07 +08:00 关闭网站... | 
|  |      25hkbtele      2017-11-12 13:30:08 +08:00 via Android 点击输入邮箱,生成一个动态下载链接发给邮箱,感觉好烦人…… | 
|  |      26janxin      2017-11-12 13:36:20 +08:00 via iPhone 如果是通用爬虫加上一次性 token 就够了,如果是防止用户下载,可以换其他方式,没必要对着爬虫来 | 
|  |      27winglight2016      2017-11-12 13:49:55 +08:00 要求打开网页才能下载这个不就是想多点广告费吗?告诉你一个好办法:把下载链接隐藏在 N 个第三方网站之后,比如:我常用的一个下载电子书的网站是这样做的,先点击进入一个网盘网站(限 ip 和间隔时间加验证码),通过后进入一个短链网站( google captcha+限时),基本上这么折腾会过滤掉大部分爬虫和小部分用户。 所以,楼主到底是什么资料?有没有这么宝贵,可以让人不计麻烦的下载,或者反过来想,真这么宝贝,外包出去手动下载也不是不行啊 | 
|  |      28laqow      2017-11-12 14:13:36 +08:00 via Android 没有公开的链接怎么批量爬?感觉楼主把文件名改成没规律的字符,前面加个随机的文件夹名,下载页加点认证校验方式,大文件附网盘链接。或者把文件下载丢到不记流量但带宽很小的服务器上去就可以了吧? | 
|  |      29clino      2017-11-12 15:43:17 +08:00 via Android 要不你弄一个只有鼠标移过去才能正常下载的,这样是不是能防一点无头爬的方式? | 
|  |      30yuanfnadi      2017-11-12 16:41:25 +08:00 via iPhone 门罗币 hash 验证码 优点 完全不怕爬虫 因为每次下载都需要点击然后计算 hash 就算是无头浏览器也要消耗大量资源来计算。对于普通用户操作简单,只需要点按就可以。 缺点 手机计算很慢 不过手机本身就很少下载东西。 | 
|      31anmaz      2017-11-12 17:12:40 +08:00 via Android 文件放第三方云存储产品,只给连接地址和密码,省钱 | 
|      32as9t      2017-11-12 22:24:51 +08:00 滑动图片验证 | 
|  |      33sunwei0325      2017-11-12 22:37:52 +08:00 本是同根生相煎何太急 | 
|  |      34kmahyyg      2017-11-12 22:49:10 +08:00 via Android 推荐 geetest | 
|  |      35flynaj      2017-11-12 23:03:55 +08:00 via Android 限时链接,屏蔽一部分,要彻底不可能 | 
|  |      36maskerTUI      2017-11-12 23:07:25 +08:00 via iPhone 微信扫码登陆下载 | 
|      37firefox12      2017-11-13 00:30:09 +08:00 via iPad 简单的 反爬虫,中文显示 三加多少等于 201 ?结合加减乘除四种算法,可以解决很多爬虫。 | 
|  |      38SlipStupig      2017-11-13 01:53:02 +08:00 @wk110 你这个是胡扯,robots 协议是“君子协议”,不遵守也有点事没有 @Kilerd 当然有一些办法啊,比如:检测 UA 头,如果是 phantomjs 就假数据,你肯定会说我可以换 UA 头啊,这个可以针对一些浏览器内核进行针对性检测,比如:chrome,可以用 websocket 等比较新的浏览器特性请求一下,如果是 firefox,可以使用尝试违法 CSP,firefox 是 CSP 是默认开启的,每种浏览器都有自己的特性可以利用,还有各种小 trick,比如:refer 检测,ip 请求阈值,用 canvas 收集客户端指纹(避免切换代理)、stroge+cookie 加密埋点对客户端访问历史进行 traceback 等等吧,我想说的是 phantomjs 并非无解 | 
|  |      39ranleng      2017-11-13 08:31:26 +08:00 用 ppoi 那种验证码. 需要计算一定的 hashes 才能继续. 一般爬虫不会耗那么多资源去计算 hashes | 
|      40kohos      2017-11-13 08:51:50 +08:00 下载链接弄临时的,一段时间后失效那种,然后限 IP 一段时间内的下载次数 | 
|      43rswl      2017-11-13 09:50:30 +08:00 爬虫与反爬虫的较量 | 
|      44keenwon      2017-11-13 10:02:33 +08:00 recaptcha 其实挺烦的,每次都要花 1-2 分钟 | 
|  |      45Kilerd      2017-11-13 10:45:44 +08:00 @SlipStupig 那如果用上 chromeless 呢(好像是这么拼的),简直就是一个无头的 chrome | 
|  |      46vtwoextb      2017-11-13 10:51:18 +08:00 有必要加 个 滑动的  解锁功能就行  , 既能保证用户良好的 体验 ,又能滤掉大部分爬虫,这样就行了 没有百分之百,,, 我就比较喜欢研究爬虫 我现在爬了某东 一年多了 也还没有阻止我 https://github.com/hizdm/dynamic_ip  这本身就是攻与防的较量,要在利益之间做权衡 | 
|  |      47580a388da131      2017-11-13 10:52:04 +08:00 能下就能爬,强大如百度网盘不也没辙么。 限速是绝招。 | 
|  |      48stanjia      2017-11-13 10:54:17 +08:00 OSS token 校验下载 | 
|  |      49greatghoul      2017-11-13 10:58:05 +08:00 via Android @firefox12 打码平台做这个还不是易如反掌 | 
|      50firefox12      2017-11-13 16:14:46 +08:00 | 
|  |      51quickma      2017-11-13 23:26:24 +08:00 有一个理解,其实真正的人使用浏览器和爬虫在任何非人类的特征上都是没有区别的,浏览器不也是一个爬虫程序吗?只是人操作这个爬虫而已。所以也就是说如果要杜绝,只有在人类的特征上下文章。 |