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