从禁止复制粘贴、打印和查看源代码的网站捕获文本

从禁止复制粘贴、打印和查看源代码的网站捕获文本

我想从网站上捕获文本(用于个人用途,而非商业用途),但不幸的是,他们已禁用复制粘贴、打印和查看源代码。

还有其他方法可以捕获文本吗?

答案1

还有其他方法可以捕获文本吗?

有可能,但是您可能需要考虑使用的方法可能取决于以下几个因素:

  • 该文本的预期用途是什么?(它需要可编辑吗,还是您只想阅读它)?

  • 它是什么类型的文本?(即它是“普通”文本还是.pdf其他类型的文档?)

  • 该文本是由 JavaScript 生成的吗?

  • 该网站实施了哪些安全措施来保护该文本?

  • 您愿意花费多少精力去复制文本?

图片

正如@John 在回答中暗示的那样,制作文本图像是获取副本的一种简单方法。

不过,就我个人而言,我不会选择用智能手机来复制网站。大多数浏览器都有最大化功能,大多数操作系统都有截屏选项(程序窗口或桌面的图片)。

这种方法的一个缺点可能是需要编辑或拼接图像以获得完整的文档和/或需要提取文本光学字符识别(OCR)。有免费程序可以帮您完成此操作,但这显然比简单的“剪切和粘贴”操作更复杂。

源代码

您可以通过从浏览器保存网页(作为 HTML)或使用其他程序(例如 curl 或 wget)下载页面来(可能)获取网页的源代码。但是,这可能并不总是能捕获所需的文本。如果文本由 JavaScript 呈现,或为嵌入式文档,则浏览器可能会在加载“基本”页面源代码后将其作为辅助操作加载/呈现。

删除阻止代码

不幸的是,他们禁用了复制粘贴、打印和查看源代码的功能。

这几乎肯定是通过 JavaScript 完成的。可以使用浏览器插件在页面上运行自定义 JavaScript(“用户脚本”)来修改页面并删除阻止 JavaScript,以便页面正常运行。也就是说,这可能取决于任何“用户脚本”首先运行,以及首先找到或创建能够删除有问题的代码的脚本。

浏览器自动化

现代基于 Chromium 的浏览器(例如 Chrome、Chromium、Firefox)可以使用 JavaScript 或 Python(我个人偏爱)等脚本语言来操作它们。重要的是,它们可以(在某些情况下)从页面中提取文本。

答案2

我想从网站上捕获文本....他们已禁用复制粘贴、打印和查看源代码。

假设使用是个人的且合法的,一个实用的选择是用智能手机相机捕捉它。这适用于任何你能看到(读到)的东西。

这适用于任何无法复制/粘贴(无论出于何种原因)的设备。我已经对 BIOS 和类似屏幕进行了此操作。

如果您在 Windows 10 上执行此操作,WinKey + Shift + S 适合获取屏幕副本,并且可能也能起到同样的作用。

答案3

您可以使用 JavaScript 覆盖源代码中禁止文本选择的值。Alan Hogan 编写了一个简洁的 JavaScript Bookmarklet,它就是用来做这件事的,您可以找到它这里。我已经使用它将近两年了。主要是从 Zoom 通话中复制姓名和聊天消息,因为在那里你也无法正常执行这些操作。

您需要做的就是将以下 JS 代码粘贴到浏览器中作为书签,然后在您想要选择并复制文本的页面上单击它:

javascript:
(function(){
  function allowTextSelection(){
    window.console&&console.log('allowTextSelection');
    var style=document.createElement('style');
    style.type='text/css';
    style.innerHTML='*,p,div{user-select:text%20!important;-moz-user-select:text%20!important;-webkit-user-select:text%20!important;}';
    document.head.appendChild(style);
    var elArray=document.body.getElementsByTagName('*');
    for(var i=0;i<elArray.length;i++){
      var el=elArray[i];
      el.onselectstart=el.ondragstart=el.ondrag=el.oncontextmenu=el.onmousedown=el.onmouseup=function(){
        return tru
      }
      ;
      if(el instanceof HTMLInputElement&&['text','password','email','number','tel','url'].indexOf(el.type.toLowerCase())>-1){
        el.removeAttribute('disabled');
        el.onkeydown=el.onkeyup=function(){
          return tru
        }
        ;
      }
    }
  }
  allowTextSelection();

或者您只需访问上面链接的网站并将书签小程序拖放到您的书签栏,这样就容易多了。

相关内容