整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

网页文本禁止复制粘贴?一分钟学会六个套路,轻松突破限制

们平时在网上查找资料,看到自己需要的内容,发现网页文本禁止复制粘贴,今天就来教你,花一分钟时间,学会下面这六个套路,轻松突破限制。

套路一:代码破解法

打开你需要复制内容的网页,在浏览器地址栏输入“javascript:void($={});”这串代码,然后按下回车键,这时候就允许你复制文本了。

(注意:一定要手动输入代码,复制粘贴的无效)

套路二:打印网页法

我们还可以利用打印网页的时候,在预览页面将文本复制下来。按下快捷键【Ctrl+P】,将会进入打印界面,直接在右侧的预览界面,选中文本进行复制。

套路三:后台控制端

打开网页后,按下功能键【F12】,进入网页后台找到【Console】,在下面输入这串符号“$=0”,再2按下回车键,网页文字就能自由复制了。

套路四:查看源代码

你还可以在网页空白处,右击选择【查看页面源代码】,然后一直向下滑动,找到密密麻麻的文本,选中直接复制提取出来。

套路五:保存本地网页

打开网页鼠标右击,选择【网页另存为】,然后在弹出的窗口中,将保存类型改为【网页,仅HTML】,接着点击【保存】。

关闭当前网页,回到桌面找到刚刚保存的本地网页文件,双击打开后,就可以随意复制啦。

套路六:截图识别文字

此外,我们还可以利用OCR文字识别技术,将网页文字识别出来。需要借助掌上识别王工具,找到【文字识别】-【快速截图识别】功能。

然后使用截图快捷键【ALT+F】,在网页中将你需要的内容截取下来,上传到这里,接着点击【立即识别】,1秒就能提取文字。

网页文本禁止复制粘贴?一分钟学会上面这六个套路,轻松突破限制,全网任意复制。

明:文章内容仅用于学习交流,切勿不当使用。

上网的时候经常会遇到网页禁止复制文本或者禁止文档下载的情况。今天结合案例分析下实现这些限制的手法和解除办法。

1、文档复制

首先创建一个demo.html的文档,文档内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DEMO</title>
    <style>
        body {background-color: aqua;}
    </style>
</head>
<body>
    <div class="content">测试文本测试文本测试文本</div>
    <script>
        let htmlEle = document.documentElement;
        let bodyEle = document.querySelector('body');
        htmlEle.addEventListener('selectstart', (e) => {
            e.preventDefault();
        });
        bodyEle.addEventListener('copy', (e) => {
            e.preventDefault();
        });
        bodyEle.addEventListener('selectstart', (e) => {
            e.preventDefault();
        });
        bodyEle.addEventListener('contextmenu', (e) => {
            e.preventDefault();
        });
    </script>
</body>
</html>

打开文档可以发现,页面文本是无法选择并复制的。因为如代码所示,页面元素被绑定了几个事件(选择、拷贝、右键菜单),阻止了用户对文本的复制企图。

怎么办呢?

打开浏览器的开发者工具,切换到Elements标签下,选择文本元素,这时可以在下方的“事件监听器”中查看到目标元素及其祖先元素上绑定的事件。展开这些相关的事件,可以看到“移除”按钮,接下来只需点击按钮将这些限制事件移除便可以复制了。

上述办法是在事件绑定后,再将它们移除。此外,也可以通过抓包改包的方式移除绑定事件相关的代码,从源头阻止事件的绑定。这需要抓包工具的辅助,这里用到的是Fiddler。

假设网页部署在本地服务器上,首先,打开Fiddler,在右侧切换到“自动转发”面板(带闪电图标的),勾选图中两个选项;然后添加规则,填上要更改的请求地址以及要替换的本地文件(假设为demo1文件,内容如下),填好后保存。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DEMO</title>
    <style>
        body {background-color: #dedede;}
    </style>
</head>
<body>
    <div class="content">测试文本测试文本测试文本</div>
</body>
</html>

设置好以后再次刷新网页,会发现页面的背景色发生了变化,而且文本也可以直接复制了。

2、文档下载

此处以网上的一个文档为例,文档可以在线查看,但是无法直接下载。通过开发者工具选中文档,可以看到它对应了一个img标签(以前是canvas),我们可以将图片保存到本地,但是如果页面比较多,手动操作就很麻烦,所以可以用代码帮我们自动执行,将图片合并成pdf文件并下载到本地。

以下代码可做参考:

function loadScript (url) {
  let ele = document.createElement('script')
  ele.src = url
  document.body.appendChild(ele)
}
function img2dataUrl (options) {
  let result = ''
  let img = options.img || ''
  let width = options.width || img.naturalWidth || img.clientWidth
  let height = options.height || img.naturalHeight || img.clientHeight
  let quality = options.quality || 100
  let mimeType = options.mimeType || 'image/png'
  let canvas = document.createElement('canvas')
  canvas.width = width
  canvas.height = height
  let ctx = canvas.getContext('2d')
  ctx.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, width, height)
  result = canvas.toDataURL(mimeType, quality / 100)
  return result
}

loadScript('https://cdn.bootcdn.net/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js')

function img2pdf () {
  let imgArr = [...document.querySelectorAll('.reader_inner img')]
  if (imgArr.length === 0) return
  let doc = new jspdf.jsPDF({unit:'px'});
  imgArr.forEach((v,i) => {
    v.setAttribute("crossOrigin",'anonymous');
    let pxPermm = v.width / 210 / 2.2;
    let imgData = img2dataUrl({img:v}).slice('data:image/png;base64,'.length);
    (i > 0) && doc.addPage();
    doc.addImage(imgData, 'png', 0, 0, v.width / pxPermm, v.height / pxPermm);
  })
  doc.save('img2pdf.pdf');
}

将代码放到控制台或者代码段中执行,执行后,再在控制台调用 img2pdf() 方法即可将可浏览的页面合并成PDF下载到本地。


、功能说明

这个VBA程序将一个Excel工作簿保存为一个网页文件,允许你将Excel的数据和格式转换成一个网页以供在线查看或共享。

二、语法说明

下面是保存工作簿为网页的VBA语法:

ActiveWorkbook.SaveAs Filename:="文件路径\文件名.htm", FileFormat:=xlHtml
  • ActiveWorkbook:表示当前活动的工作簿。
  • SaveAs:用于保存工作簿。
  • Filename:是要保存的文件的完整路径和文件名,其中.htm文件扩展名用于保存为网页文件。
  • FileFormat:指定文件格式,使用xlHtml表示保存为HTML文件。

三、案例说明

假设你有一个名为 "SampleWorkbook.xlsx" 的工作簿,你想将其保存为一个网页文件,文件名为 "SampleWebPage.htm",并保存在同一目录下。

四、编写代码

以下是VBA代码示例,用于将工作簿保存为网页文件:

Sub SaveAsWebPage()
    Dim FilePath As String
    FilePath = ThisWorkbook.Path & "\SampleWebPage.htm"
    
    On Error Resume Next
    ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=xlHtml
    On Error GoTo 0
    
    If Dir(FilePath) <> "" Then
        MsgBox "工作簿已成功保存为网页文件:" & FilePath, vbInformation, "保存成功"
    Else
        MsgBox "无法保存工作簿为网页文件。", vbExclamation, "保存失败"
    End If
End Sub

五、运行结果

运行上述代码后,如果成功保存工作簿为网页文件,你将看到一个消息框显示保存成功,并提供保存的文件路径。如果保存失败,你将看到一个保存失败的消息框。



六、程序分析

  • 我们首先构建了要保存的文件的完整路径(FilePath),它是当前工作簿的路径加上文件名 "SampleWebPage.htm"。
  • 使用On Error Resume Next语句来防止如果同名文件已存在而导致的运行时错误。
  • 然后,我们使用ActiveWorkbook.SaveAs将工作簿保存为HTML文件。
  • 检查文件是否成功保存,如果成功则显示成功消息框,否则显示失败消息框。