V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxp
V2EX  ›  分享发现

一个网站的终极内容防复制的设计,没见过更加丧心病狂的了,求破求算法

  •  
  •   zxp · 2014-01-27 10:23:27 +08:00 · 6816 次点击
    这是一个创建于 3935 天前的主题,其中的信息可能已经有所发展或是发生改变。
    很多年前发现的一个奇葩网站,内部所有文章的内容都用一种奇葩的防复制设计,不但防机器人,还防人肉复制,曾想破了脑袋去破,最终还是放弃了,耿耿于怀了很多年,原始网址忘记了,就用一个图片来说说这个设计吧,看看大家有没有破法。



    整篇文章被多个表格包围,表格大小随机,一个文字一格,手工复制出来,导成纯文字版整个文章文字顺序全部打乱,无法阅读。
    32 条回复    1970-01-01 08:00:00 +08:00
    Livid
        1
    Livid  
    MOD
       2014-01-27 10:26:45 +08:00 via iPhone   ❤️ 4
    如果对方还考虑 SEO 的话,把 UA 伪装成百度看看能不能拿到不同的输出。
    raincious
        2
    raincious  
       2014-01-27 10:42:40 +08:00   ❤️ 3
    截图OCR转换。
    jjplay
        3
    jjplay  
       2014-01-27 11:09:10 +08:00
    国人都是人才...
    Evance
        4
    Evance  
       2014-01-27 11:17:38 +08:00
    如果生成的算法在后端,那么通过字符串处理的办法,很大情况情况无解,通过 @raincious 所说的办法比较有效。
    如果算法在前端,找到生成脚本修改处理的算法函数即可。
    hq5261984
        5
    hq5261984  
       2014-01-27 11:25:22 +08:00   ❤️ 2
    chrome浏览器 粘帖为纯文本。
    然后自己再排版。
    bengtuo
        6
    bengtuo  
       2014-01-27 11:27:06 +08:00
    只要能看到正确的内容 便是可以破的
    FrankFang128
        7
    FrankFang128  
       2014-01-27 11:27:18 +08:00
    好办法。 对付copy者很管用。
    FrankFang128
        8
    FrankFang128  
       2014-01-27 11:28:14 +08:00
    @bengtuo 中文OCR识别度太烂,所以楼主说的这种暂时无解,我觉得。
    Mutoo
        9
    Mutoo  
       2014-01-27 11:36:15 +08:00   ❤️ 4
    其实也不是没办法,可以把每个字的位置信息提取出来,然后做一个二维链表把它们重新排序。就像古代印刷术那样,最后得到文字内容。

    提取位置的方法有很多,这里我弄了个示例
    http://jsfiddle.net/mutoo/w5KJz/
    casparchen
        10
    casparchen  
       2014-01-27 11:40:04 +08:00 via iPad
    他怎么处理的,你就逆处理呗。比如他是按原文本行列号生成表格坐标,那只需将坐标转换成行列号再拼凑字符串即可
    icedx
        11
    icedx  
       2014-01-27 12:14:37 +08:00 via Android
    @FrankFang128 没有识别不出来的文字 只有识别不出文字的软件
    jinwyp
        12
    jinwyp  
       2014-01-27 12:21:23 +08:00
    我觉得,有了canvas, 以后内容可以直接用canvas输出, 很难复制
    yangff
        13
    yangff  
       2014-01-27 12:23:19 +08:00
    @jinwyp 前端绘制都可以做,大不了自己编译个chrome把freetype的接口暴露出来,直接服务端下发图片就行了,只能ORC。
    x86
        14
    x86  
       2014-01-27 12:25:17 +08:00
    贴个地址出来
    raincious
        15
    raincious  
       2014-01-27 12:26:22 +08:00
    @FrankFang128 False。就算建立自己的字图索引,网页截图那么高精度的采样,识别这个,没有任何问题。
    zxp
        16
    zxp  
    OP
       2014-01-27 12:26:33 +08:00
    关键是上面只是这个网站页面的一种情况,最纠结的就是表格还有嵌套,所以要写个机器人来自动抓内容面临的困难太大了,网站内容的自动生成的算法也很让人困扰,最后只能怀疑网站是全人工手动制作的,只能佩服站长为了防复制的巨大毅力了。。。
    Mutoo
        17
    Mutoo  
       2014-01-27 12:38:30 +08:00   ❤️ 1
    @zxp 建立字符位置信息可以无视嵌套。位置是相对于网页边界的。
    zxp
        18
    zxp  
    OP
       2014-01-27 12:39:55 +08:00
    @Mutoo 啊,很对,很好的思路!
    zxp
        19
    zxp  
    OP
       2014-01-27 12:43:24 +08:00
    内容生成的算法其实之前也想过一些,比较靠谱的是先生成表格的布局,对每个格子进行编号,然后对格子排序,把文字内容按顺序填写进去,相对抓取的难度应该要小一些。
    hsu
        20
    hsu  
       2014-01-27 12:43:47 +08:00
    @Mutoo 赞一个。
    xiaket
        21
    xiaket  
       2014-01-27 12:45:02 +08:00   ❤️ 1
    @zxp 这种防复制的算法也只需要写一次, 随机生成一种用多个block来填满一个页面的方法, 然后将文章排版后映射到每个格子中, 最后再渲染出来.

    如果做得更过分, 还可以在css/js里面再做一些效果. 改变前面说的映射表... 例如让某个block不显示/把某个block放到左边/用某个block覆盖其他block等等等等...
    shakoon
        22
    shakoon  
       2014-01-27 12:46:21 +08:00
    赞,这招原创文学网站可以借鉴
    FrankFang128
        23
    FrankFang128  
       2014-01-27 12:57:10 +08:00   ❤️ 1
    @shakoon 嗯,我也觉得,简单的随机切割,使得破解难度大大增加。看看上面说的几个解决方案,没有编程基础的人员搞不定的。所以可以防止一大片想要 copy 的人。
    davidyin
        24
    davidyin  
       2014-01-27 15:50:41 +08:00
    复制的时候不是连表格一起复制的么?
    粘帖的时候也连表格一起就好了。
    d0a1ccec
        25
    d0a1ccec  
       2014-01-27 16:36:37 +08:00
    来个url吧 ,楼主
    anheiyouxia
        26
    anheiyouxia  
       2014-01-27 17:40:19 +08:00
    我记得N年以前似乎也遇到过这样的网站
    9hills
        27
    9hills  
       2014-01-27 17:40:30 +08:00
    @FrankFang128 网页截图这么清晰,中文OCR识别率很高的。
    icyalala
        28
    icyalala  
       2014-01-27 17:44:15 +08:00   ❤️ 2
    只要人能认出来,就防止不了人肉复制啊。。
    你看起点中文之类的网站比这还要丧心病狂,换字体,渲染成图片,那些盗版小说站点照样能弄出来。。靠的就是“手打”。。

    在中国,人力成本非常低。。。
    xunyu
        29
    xunyu  
       2014-01-27 17:46:57 +08:00
    对啊,ocr啊,在去噪下就解决了
    zxp
        30
    zxp  
    OP
       2014-01-27 20:03:57 +08:00
    @d0a1ccec 哎呀,当年没能搞定那个网站,一直很纠结,时间长了就忘了。。。就是因为忘了那个网址,只有在sina上面随便截取了一个页面,做个说明。。。

    抱歉了各位,实在是想不起来那个网址了。
    yangzh
        31
    yangzh  
       2014-01-27 22:20:48 +08:00
    @FrankFang128 中文 ocr 是手写不能识别。这种“机器”的“端正”字体的话对于 ocr 程序还是没压力的。
    84840
        32
    84840  
       2014-01-27 23:44:35 +08:00
    先查源代码研究下这个网站是如何实现这种排版的,没有破解不了的网站。

    时间。。。,这时候我想起了《卡徒》
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3092 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:49 · PVG 21:49 · LAX 05:49 · JFK 08:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.