
1 metowolf 2017-05-18 20:47:52 +08:00 对特征明显的、频度高的请求返回脏数据(删字改字添字) |
2 dsg001 2017-05-18 21:29:38 +08:00 会员限制,超过阀值则每次访问都需要验证码 |
3 gouchaoer 2017-05-18 21:32:45 +08:00 via Android 验证码不是一个好的方案,反爬虫最重要的是不能让爬虫知道你已经知道它是爬虫了 |
4 humxman 2017-05-18 21:39:04 +08:00 via Android 先载入一部分然后监听事件,如果没有动作(滚屏、鼠标动作)的话不请求后续内容。 |
5 karia 2017-05-18 21:42:46 +08:00 刚写完爬虫的我用极其幽怨的眼神看着楼主。 |
7 elfsong 2017-05-18 22:38:36 +08:00 讲道理 除了 Plan 3 其他两种代理池都可以定 |
8 olOwOlo 2017-05-18 23:35:37 +08:00 之前爬过的某站上面三种都有 反爬虫一般都是独立出来的,类似 fail2ban 这种扫描日志(或者做个流量分析系统_(:з)∠)_? 个人感觉从会员入手是效果最好的,频率过高直接封号_(:з)∠)_ 不过爬虫是挡不住的,只要是浏览器能访问的爬虫都能想办法获取到,除非像一些网站一样只显示前 X 页的内容 |
9 yidinghe 2017-05-18 23:44:03 +08:00 via Android 传输内容加密,加密解密的代码混淆,解密出来的文字用 canvas 画出来。 |
10 Reign 2017-05-19 00:13:59 +08:00 via iPhone 反爬做的足够好把用户和搜索引擎都干跑了,你能想到的反爬我们这些写爬虫的早就想到了,“弊端是每次访问都要检测该 ip 的访问次数和执行判断”,根本不是这个弊端,你还太年轻 |
11 ioriwong 2017-05-19 00:21:15 +08:00 我觉得动态加载是个不错的方案,一般爬虫不会模拟鼠标滚轮动作或键盘 Pagedown 动作 |
12 mokeyjay 2017-05-19 00:29:17 +08:00 用小说站的反采集方案吧。小说入库时,随机挑选一些字生成图片,将图片链接插入原文,删掉被图片替换的字。显示时用户无感知但爬出来的内容全是乱的 |
13 Akkuman 2017-05-19 00:32:08 +08:00 via Android 直接提供接口 |
14 yangqi 2017-05-19 00:41:13 +08:00 要想 100%防是不可能的,只能防止一些比较初级的爬虫。现在的框架都是模拟浏览器访问,基本看不出来是爬虫 |
15 t6attack 2017-05-19 00:42:24 +08:00 自己设计了一套缺德的繁琐的机制。简单的说,判断出采集行为后随机穿插错误数据、重复数据。 |
16 crayygy 2017-05-19 01:23:43 +08:00 via iPhone display:none |
17 bjlbeyond 2017-05-19 08:02:51 +08:00 via iPhone 只能说是用一些手段去限制初级爬虫选手 |
18 tinyproxy 2017-05-19 09:06:25 +08:00 via iPhone 人家真要爬你,也就看谁更耗不起了。 |
20 zpvip 2017-05-19 10:04:00 +08:00 把最常用的几百个汉字每小时生成图片,相同汉字每小时的图片名称不一样,程序内部有对应 hash,图片过一小时就自动删除,PHP 处理这个过程非常快,不到一秒。 用 dns 检查是否为 Google 和百度爬虫,对爬虫不用图片替换。 如果高手用 OCR,并且把所有图片都保存下来,也够他忙的,不可能绝对防住,只能恶心他们。 |
21 actto 2017-05-19 10:07:19 +08:00 via Android 还不如加个 api 接口提供给爬虫们,然后收费,每月 5 元。 |
22 AllenHai 2017-05-19 10:31:14 +08:00 1:网页中用框架,比如 QQ 空间; 2:写一套流弊的 JS 加密程序,比如网易云音乐; 3:每分钟请求超过一个阈值就弹验证码,检测到爬虫后返回 404 或者弹验证码或者给掺假的数据(半真半假那种); 4:必须用手机号注册账号,检测到异地登录必须输手机验证码,cookies 有效期短一点; 5:换字体,以前去哪儿用过; 6:把阿里云的 IP 段禁掉; 7:自己爬一下网上的免费代理,禁掉 IP ; 8:提取浏览器特征,来反 webdriver ; 9:UA 里做一些排查 |
26 AllenHai 2017-05-19 11:42:47 +08:00 @silva UA 是指 user-agent,你去看下 requests,scrapy 的请求头,封它就对了; 字体那个就像凯撒密码那样,把字体里数字换一下,通常数字顺序是 0~9,而自定义的字体里做个转换,比如 0 和 5 对应,1 和 9 对应。这个是挺有意思,但是也容易破解 |
28 sampeng 2017-05-19 11:47:36 +08:00 特别反感爬虫,特别反感反爬虫 这是一个矛盾的话题,做内容的,自然要去爬数据。如果有公开的接口信息,没人愿意去爬数据。可现实是没有。 如果豆瓣,时光网有非常好的 api 直接提供,我相信没人愿意花费大量的时间精力去爬数据。 这是国内环境造成的,看看国外的,基本有权威的影音数据库,直接公开查询接口。 有些公共信息真的非常反感反爬虫机制,比如影音类的。。新闻类的。做个自定义 rss 都麻烦。。如果有收费的 api。我会直接购买。当然这是个遥不可及的想法。。。因为没有网站希望用户压根不上自己的平台。。国内现在大部分做内容的还是靠广告收费。任重而道远啊。。。。 |
29 coolcoffee 2017-05-19 11:51:05 +08:00 看来为了爬虫为了防止垃圾数据产生,还要对爬取的数据进行更换 IP 以及其它特征进行二次校验。 |
30 chairuosen 2017-05-19 13:43:09 +08:00 css:before 随机替换文章中的字 |
31 tianxiacangshen OP @Reign 那还有啥更大的弊端?我以为只是占资源 |
32 tianxiacangshen OP @mokeyjay 这个很好,抓到的内容不完整了,但是如果写个软件模拟浏览器将网页保存为图片的功能,将该网页保存为图片,然后将图片转换成 word.......... |
34 wildcat007 2017-05-19 14:41:34 +08:00 上次在 V 站看到有个 网站 文字是一部分放到 div 里面,一部分放到 css 里面看的我头都大了 |
35 phrack 2017-05-19 15:07:27 +08:00 via Android 提个稍微偏题的 要注意逻辑越多,代码就会越多,漏洞可能也越多 |
36 jccg90 2017-05-19 16:16:18 +08:00 反爬虫、用户体验、SEO 这几个要综合考虑吧。。。光考虑反爬虫了,用户体验和 SEO 都搞得一塌糊涂了,没有意义啊。。。 |
37 lotmany 2017-05-19 16:40:40 +08:00 相爱相杀一百年...你们是没有未来的,放弃吧. |
38 vus520 2017-05-19 16:49:27 +08:00 一句话,用户能看见的,都能采,叼不叼 |
39 tianxiacangshen OP @phrack 支持你,我看有些人就顾着玩弄技术了,应该各方面均衡,用户体验、网站安全、网站性能等 |
40 wizardforcel 2017-05-19 18:21:38 +08:00 via Android 不算绩效就不防 |
41 8355 2017-05-20 23:02:44 +08:00 其实我觉得爬虫只要对你的服务器的正常浏览没有大的影响就用太过于关注它。除非它让你浏览猛增 你用你提的第一点限制一下就可以了。 |
42 akira 2017-05-21 20:55:26 +08:00 限制 ip 频次就足够了。 主要是防止有些低级爬虫爬的太凶,影响到正常用户使用。 至于说完全不允许采集,这个基本上是不可能的了,别想了。 |