如何隐藏页面的文字来避免爬虫?

2017-01-21 08:00:28 +08:00
 nikoo
原创文学网站,同行基本是把文章转换为图片后显示,但这样的问题是转换时消耗服务器资源与样式调整比较麻烦,但好处是不仅可以防止爬虫同时还可以防止用户直接复制文章。

如果在不考虑用户直接复制文章,仅做到加密 /隐藏文字来防止页面源码爬虫的话,有什么实现方法呢?

我知道理论与技术上这不可能做到完全避免内容被针对性的复制与爬取,但只要做到能杜绝大部分的通用爬虫与没有 Javascript 引擎的爬虫就可以了。

希望看到各位的奇技淫巧与思维的火花。
4505 次点击
所在节点    问与答
26 条回复
ericls
2017-01-21 08:01:34 +08:00
用错综复杂的 table 文字的顺序和 html 里面的顺序不一样
nikoo
2017-01-21 08:03:03 +08:00
@ericls 谢谢,什么叫“错综复杂的 table 文字的顺序”?是纯 HTML 吗?如何实现?
imn1
2017-01-21 08:15:19 +08:00
其实就一个理念,让人阅读容易,让机器阅读困难(或者经过机器后,让其他人阅读困难)
例如,全部标点换成图片
uucloud
2017-01-21 08:22:16 +08:00
每天随机改变一下 dom 结构和文字标签的属性名
sheldor
2017-01-21 08:35:23 +08:00
因为还要防止被人随意复制,所以个人认为无解
livelazily
2017-01-21 08:35:48 +08:00
@nikoo 每一行的文字都放到一个空白的不带额外属性的的 div 里,每行文字都是乱序, 加载完成后用 js 调整为正确的顺序
des
2017-01-21 08:40:06 +08:00
自定义字体,隔一段时间去换。
多种方式换着来。

总感觉会有人来打我😂
kchum
2017-01-21 08:43:03 +08:00
还可以截图 OCR 啊,防不胜防
xuan880
2017-01-21 08:45:11 +08:00
现在盗版都是自动抓取,自动 OCR ,只要作品阅读量大就无解,除非是那种没人去的小站,盗版都没人盗。
nailuoGG
2017-01-21 08:47:52 +08:00
爬网站时碰到以下这些情况会比较想吐槽:

- 关键元素没有 class 、 id
- 有位置随机的空 div
- 全部 table 或全部用 div
nailuoGG
2017-01-21 08:51:22 +08:00
记得有个方法是:网站载入前通过 js 进行运算,用算出来的 key 来获取正文。

主要思路是提高爬取成本,但是这个方法对有大量数据的站更有效。
yidinghe
2017-01-21 09:04:12 +08:00
用 canvas 写文字
Yourshell
2017-01-21 09:05:14 +08:00
让新手来写页面
gouchaoer
2017-01-21 09:16:04 +08:00
作为全职爬虫工程师,我表示上面的都不靠谱。。。。

第一,转化成图片是个很不错的方法, cpu 不是问题,你把图片缓存起来就 ok 了。。然而对 seo 和移动端不那么友好。。。。至于爬虫要 ocr ,这个也要付出相应的成本


第二,根据账户行为控制,如果注册用手机注册,那么封了一个爬虫账号后就等于封了一个手机,爬的成本立刻上升。然后由于市场上有几 kw 个黑市手机号,能搞到这些手机号注册的业余爬虫码农做不到。那么基于行为怎么搞呢?很简单,一个用户的翻页速度和跨作品阅读都是很好的特征,写一些代码就能判断出爬虫,封的时候要慢慢封,不要让人猜出你封的策略。。。。


当然了,我个人倾向第二个方案。。。。你如果想要 seo 的话,可以每段做成一个 html ,路径用 hash ,让人猜不出路径规则无法遍历,这样搜索引擎又能索引,又能放爬虫。
scnace
2017-01-21 09:16:08 +08:00
放个 pdf 预览框不是稳得 1B !
gouchaoer
2017-01-21 09:29:24 +08:00
防那种业余的爬虫很简单,你页面动态生成的话。。。制作一些 html 模板,翻页啊文章正文的元素的 id 之类的经常变,但是由于你前端 js 已经和模板耦合很厉害了,如果 js 是由后端生成的可以这么做。。。这样可以防一些傻瓜爬虫
loading
2017-01-21 09:41:56 +08:00
用 js 过去编码过的数据,解密后用 canvs 显示
SpringHack
2017-01-21 10:07:02 +08:00
dom 结构和文字结构是反的
Suclogger
2017-01-21 10:25:55 +08:00
@gouchaoer 一名业余爬虫码农表示很容易找到一堆接收验证码的网站,还提供各种易用的 api ,费用约¥0.1 元一条
Aspx
2017-01-21 10:32:09 +08:00
现在 OCR 识别挺成熟了,转成图片这招意义也不大了。只能说现行法律的犯罪成本不高啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/335996

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX