JavaScript 技巧?scribd 如何让复制和粘贴文本变得困难

JavaScript 技巧?scribd 如何让复制和粘贴文本变得困难

最近,我发现 scribd 让用户(免费用户)很难浏览其网站上的文档。无法在文档内进行搜索,更不用说下载文档了。

他们使用 javascript 在浏览器中按需加载页面,因此浏览器的“另存为”功能没有太大帮助。

令我惊讶的是,我发现即使复制/粘贴文本也会将乱码复制到剪贴板!为了检查出了什么问题,我关闭了浏览器中的 javascript,然后再次加载了同一个文档。瞧,我确实看到了乱码。因此,看起来 scribd 中的 javascript 以某种方式解码了乱码文本,然后将其显示在浏览器中。

现在,我的问题是,即使启用了 javascript,并且文本在浏览器中正确呈现,如果我去查看与我选择的文本相对应的 DOM 对象,我仍然会看到乱码文本。

所以,现在我很困惑。文本可以正常显示给用户,但 DOM 对象仍然包含乱码。所以问题是,网站使用了哪种 javascript 钩子/代码,以便能够保留 DOM 对象中的乱码并仍然呈现解码后的文本?

有没有办法可以访问解码后的文本?我的目的不是对解码算法进行逆向工程,而是找到解码文本的存储位置?

示例文档为:

http://www.scribd.com/doc/143886351/OCP-Upgrade-to-Oracle-Database-12c-Student-Guide-vol-1-Exam-1Z0-060

看看当你打开/关闭 Javascript 时会发生什么!

答案1

查看。他们使用自定义字体(在本例中font-family为)。spanff6

他们必须这样做,以便更多 PDF 文档能够正确显示。与 PDF 文档一样,文档中的文本不要求必须使用标准字符集。它只需要使用具有与嵌入字体中的字形对应的代码的字符集。

答案2

如果您查看显示的文本与“乱码”,您会发现有些字母相同,而有些字母被替换了。例如,“Mltmrprfsm Jblbemr”是“Enterprise Manager”。只要有足够的文本,您就应该能够快速构建一个翻译表。我们已经知道翻译为大号->电视R, 和很清楚,F->R等等。只要花点时间、进行侦查工作并具备一定的编程技能,就可以翻译整个文档。

当然,不能保证下一个文档会使用与当前文档相同的字体ff6Dan D.提到,因此如果您想保存文本以供以后使用,下一步应该是获取该字体以供本地使用。

答案3

您可以尝试使用浏览器的裁剪工具截取屏幕截图,然后使用任何可用的在线 OCR 网站将其转换为文本。这样应该可以解决问题。

相关内容