昨天下班时,归心似箭的我收拾好东西,就迫不及待的夺门而下班。不料,一只脚刚迈出公司大门,就被 boss 叫住。我顿时懵了,什么事?然后忧心忡忡的来到 boss 的办公司,一聊。原来有个技术需求,大概是这样的:公司的业务是在各大平台上投放我们自己的产品的网页广告的,但是网页页面有些夸张的词语,导致在很多平台投放时被这些平台的爬虫检测到有这些词语,进而风账户。所以 boss 的意思是能不能做到网页的内容只能让客户看得到而爬虫看不到!!!也就是屏蔽掉这些爬虫。鉴于我自己糟糕的 php 技术,boss 说我能力有限,估计做不了,所以让我广发英雄帖,招募来自五湖四海,大江南北的仁人易士,大牛大神。只要能解决这个问题,价钱随便开!!!
1
o0 2018-12-26 11:36:09 +08:00
个人最近倒是弄过一些,暂时是没有类似烦恼了,不过这个本身也是在用户体验和被爬之间权衡,没有完美的方法。
当然像你们这个相对容易点,毕竟只是为了不被检测。 |
2
frankyxu 2018-12-26 11:36:29 +08:00
关键词可以转化为图片展示,或者整体内容转化为图片
|
3
d7101120120 2018-12-26 11:38:36 +08:00
转图片+1,为了规避广告法很多商家也都是把宣传词都转成图片防止被职业举报人的工具检测到的。
|
5
Arnie97 2018-12-26 11:40:07 +08:00 via Android
在关键词中间插入一些不可见的内容,一般的爬虫不会
|
6
noahsophie 2018-12-26 11:40:35 +08:00
有人工审核的
|
7
kltt22 2018-12-26 11:42:07 +08:00 via Android
JS 加载,css 乱序隐藏。真要是爬虫,一般会死在 js 加载上
|
9
xeaglex 2018-12-26 11:45:09 +08:00
加载页面先输入验证码就行了
|
10
lisces 2018-12-26 11:48:17 +08:00
有随机抽检,人工审核,还有同行举报,就你这需求想一个反爬虫就解决有点不够吧?
|
11
kulove 2018-12-26 11:48:33 +08:00 3
把夸张的描述去掉...
|
12
ioven 2018-12-26 11:49:28 +08:00
替换字体 类似猫眼
|
14
liyer 2018-12-26 11:52:35 +08:00
###用 iconfont 替代文字
``` .font1:before{ content:'/xxx1'; } .font2:before{ content:'/xxx2'; } ``` ###页面加载 ``` <div> 这里一段文<i class="font1"></i>说明包含<i class="font2"></i>蔽关<i class="font3"></i>词 </div> ``` |
18
lifeintools 2018-12-26 11:56:08 +08:00
这种没有一劳永逸的方案。
|
19
t6attack 2018-12-26 12:01:59 +08:00 2
任何了解网站运转逻辑的人,都能纸上谈兵的讲出一堆,实际实现是另一回事。
我也来扯两句: 根据请求特征,返回特定内容。最好不要彻底屏蔽他们。比如定位爬虫和平台人员的 IP 段、UA,范围压的越小越好。对他们返回特制的“没毛病的广告”。 可以自己主动加上举报按钮,把所有点举报的用户记下来,cookie/storage 打上标记。以后对他们展现特制广告。 |
20
Huelse 2018-12-26 12:02:15 +08:00
一种是转图片,还有一种是加隐藏乱码 div 于每个字之间,我一般是这么做的,当然还有很多细节可以操作
|
21
liyer 2018-12-26 12:11:40 +08:00 2
|
23
MrUser 2018-12-26 12:23:09 +08:00
robots.txt
-------- User-agent: * Disallow: / |
24
Vegetable 2018-12-26 12:26:34 +08:00
你确定是因为链接内容被封的,而不是因为发广告的行为本身被封的?
如果是因为链接本身被封的,要防止爬虫,那最简单的就是先来是一个客户端渲染,爬虫拿到的 html 是空白的,除非这个爬虫是执行 js 的,如果执行 js 的话,就没办法了,因为爬虫只需要访问你的链接一次,基于浏览器开发的爬虫,只访问你的地址一次,是没有任何办法能有发现的. 不过我感觉跟你们的链接没什么关系,毕竟爬虫又不能分析出来你链接里边的东西是不是有问题,发链接广告这个行为本身才是更可疑的吧. |
25
ben1024 2018-12-26 12:33:25 +08:00
反的不是爬虫,是平台审核机制(自动审核,手动审核)
可以采用引入 PHP 脚本的形式控制输出内容,更加用户特征控制展示 |
26
geekjc 2018-12-26 12:41:36 +08:00
一看楼主的公司就是做灰产的
|
27
necomancer 2018-12-26 12:43:26 +08:00
reCAPTCHA?
|
28
Asice 2018-12-26 12:43:36 +08:00
人工审核也简单,根据当前时间,审核时展示一种,过了审核时间展示另一种。js 能实现的
|
29
xnode 2018-12-26 13:13:44 +08:00
js 加密数据,文字转图片,数据放在 css 中,html 放蜜罐,反作弊
|
30
bigboss88 2018-12-26 13:25:24 +08:00
懂了,无非就是用 Facebook 或者 Adwords 跑一些黑五类的产品广告,或者说是诱导页面会被广告审核部门认定为欺诈成分存在进而封户。
你们需要的这个有现成的服务,但是并不是一劳永逸的,其中规避的原理有很多,所以你们需要 Cloak 技术。 判定审核依据:除了爬虫,还存在着人工审核,因此过滤屏蔽的规则包含:媒体广告公司的审核部门 IP 地址,访问诱导页面的设备,以及是否存在非过滤跳转; 联系我,2000 美元解决;(一整套技术的使用教程) (Base64):NTA3NTE3OA== |
31
bigboss88 2018-12-26 13:28:02 +08:00
如果是你们老板付钱,我的收费是 1 万美元,可亲临贵公司解决问题。
|
35
zsdroid 2018-12-26 14:08:12 +08:00
鉴于自己能力有限,在此重金寻求反反爬虫技术...
|
36
iannil 2018-12-26 14:09:42 +08:00
这种问题针对不同平台要使用不同的防检测手段的,而且平台的策略会定期或不定期的更新,所以得有固定的合作者持续的给你们提供支持,招人或找其他公司都可以。
|
37
wibile 2018-12-26 14:10:23 +08:00
cloak 系统了解一下
|
38
iannil 2018-12-26 14:10:50 +08:00
1 万美金便宜了,咨询费还行。
|
39
wsh1108 2018-12-26 14:12:13 +08:00 via Android
要是人工审核能有什么办法,刺杀审核员么 doge
|
42
oneonesv 2018-12-26 14:20:25 +08:00
|
43
xe2vxe2v 2018-12-26 14:21:23 +08:00
一:自定义 web-font,参考 https://blog.csdn.net/fdipzone/article/details/68166388 ;
二:字体编码,例如“这是广告” 用 Unicode 转下 “\u8fd9\u662f\u5e7f\u544a ”; 三:js 加载,例如 ajax 请求接口; 四:图片 总之让爬虫不能直接拿到数据,或者拿到数据但需要处理后才能识别 |
44
chuqi 2018-12-26 14:21:51 +08:00
现在这些信息流平台都有毒的很,无力吐槽。
之前看到过泡违规广告的几个户,他们是用的 js 跳转+代码混淆,我不知道他们是不是还活着。之前在我们这边做过... |
45
iannil 2018-12-26 14:25:04 +08:00
@frozenway #41 不确保解决,可以把你们广告发出来看看是啥样的,估计下复杂度。不方便发论坛的话,加微信发也行:eHVueXV4 ( base64 )
|
46
bigboss88 2018-12-26 14:28:20 +08:00 1
原来你们是做微信加粉的 哈哈
可以的 可以联系我。 @Showfom 没错,个人咨询,我的收费是 2000 美元一次,而公司的话则是 1 万美元。 为什么公司会贵些? 因为公司咨询 必然会问到广告投放业务的具体细节,如何更低成本更高效率的优化,如何节省业务时间周期。 因此,不仅仅会讨论技术方面的细节,还会讨论到业务细节。 我一个小时的咨询建议,能帮他们省 10 万美元,所以会贵些。 |
48
bigboss88 2018-12-26 15:13:24 +08:00
@iannil 招人么,不切实际。
能解决这些问题的,基本上都是搞 Mediabuy 并且玩得很溜的,广告跑不动的时候或者审核政策很严的时候,宁愿每天亏几万也是不会随便找个公司去上班的。这样的人,怎么招? |
49
w88975 2018-12-26 15:17:49 +08:00
这玩意我做了好几年,但并不是做广告反屏蔽的,做的是某种擦边球网站的反检测,各种姿势反检测。除了人工检测,机器根本没办法检测出来。
人工审核倒是有个不优雅的办法,就是 ip 池白名单 |
50
zouchao911 2018-12-26 15:39:51 +08:00
@
|
51
wly19960911 2018-12-26 15:52:06 +08:00 1
改字体是最适用的方法,利用自造的字体和编码,去渲染页面,抓到了你都只能看见方块的乱码,因为你普通的爬虫根本不会加载字体,而且就算加载了字体存进数据库的时候也不好还原成 utf-8 的字,只需要正则替换和页面加载一个字体就能解决的问题。
|
52
KasuganoSoras 2018-12-26 16:05:52 +08:00
我之前有个骚操作:
1. 如果爬虫是直接判断文字,那么就使用 AJAX 动态加载内容 2. 爬虫升级了,会读取 AJAX 内容,那么就把文字改为图片 3. 爬虫又升级,会 OCR 识别图片,那么就改为 AJAX 动态加载图片,并且加一些需要客户端进行计算然后 GET 到服务端再验证 4. 爬虫使用 WebKit 内核模拟浏览器,那么就给图片加个 CSS:display: none; 然后 hover 后 display: block 5. 再高级点……爬虫模拟鼠标的话,我就不知道了 |
53
soho176 2018-12-26 16:13:31 +08:00
办法很简单,就是审核的在那里,你那里就不投放广告,比如头条北京审核的,你就检测 ip 发现只要是北京的 ip,都访问正常审核页面,其他的地方的 ip,访问广告页面。
|
55
frozenway OP @KasuganoSoras 你这些方法很 6,可是太麻烦
|
57
xiaozuo 2018-12-26 17:39:21 +08:00
Cloak 而已,前提是有审核公司的数据资料,并不是很深的学问。
|
58
souce 2018-12-26 18:38:55 +08:00
转图片+1
|
61
tabris17 2018-12-26 21:46:15 +08:00
《一种防机器识别的网页文字加密方法》 https://www.jianshu.com/p/1c65fcd30c4b
|
62
leavic 2018-12-26 22:12:52 +08:00
1.转图片
2.全部通过 javascript print 出来,爬虫很少解析 javascript |