防止网站内容被小偷采集的js代码 原创

下面是防止网站内容被小偷采集的js代码的完整攻略,包含以下步骤:

步骤一:禁止右键菜单和文字选择

在网页中加入以下代码可以禁止鼠标右键菜单和文字选择:

<body oncontextmenu="return false" onselectstart="return false">

这样做可以有效防止普通用户使用鼠标右键复制网页内容或者选择文字后进行复制,但是并不能阻止采集程序直接获取到网页内容。

步骤二:使用 CSS 隐藏内容

在网页中加入以下 CSS,可以让部分内容在网页中不被显示,但是采集程序仍然能够获取到这些内容。这种方法只适用于需要保护的内容较少的情况:

.content {
    display: none;
}

步骤三:使用 JavaScript 动态生成内容

最终防止网站内容被小偷采集的方法是使用 JavaScript 动态生成内容,这样采集程序就很难获取到网页内容。以下是具体实施的步骤:

  1. 在 HTML 中定义一个空的容器:
<div id="content"></div>
  1. 使用 JavaScript 生成内容并加入容器中:
var content = '需要保护的内容';
document.getElementById('content').innerHTML = content;
  1. 在生成内容的同时,将内容中所有的文字字符分隔成单个字,再加入一个随机数,混淆文字字符的顺序。这样做可以防止采集程序使用正则表达式等方式获取内容。
var content = '需要保护的内容';
var arr = content.split('').sort(function(){return Math.random()-0.5});
var output = '';
for(var i=0; i<arr.length; i++) {
    output += arr[i];
}
document.getElementById('content').innerHTML = output;

这个方法可以让网站的内容更难被采集程序获取,但是也会增加网站的服务器负担和页面加载时间。因此需要根据具体情况来平衡安全与性能。

示例1:

假设你的网站有一些需要防止被采集的内容,比如一些付费内容。你可以先在 HTML 中定义一个容器:

<div id="protected-content"></div>

然后使用 JavaScript 动态生成内容并混淆文字的顺序:

var content = '这是需要保护的内容';
var arr = content.split('').sort(function(){return Math.random()-0.5});
var output = '';
for(var i=0; i<arr.length; i++) {
    output += arr[i];
}
document.getElementById('protected-content').innerHTML = output;

这样做可以让付费内容更难被采集程序获取。

示例2:

假设你的网站有一些需要保护的图片,可以使用下面的代码禁止右键菜单和保存图片:

<img src="img.png" oncontextmenu="return false" onmousedown="return false">

这样做可以防止普通用户保存图片,但是对于网页抓取程序仍然无法起到作用。如果需要进一步保护图片,可以使用 JavaScript 将图片转换成 Canvas,然后将 Canvas 导出成图片。这样做可以让图片更难被采集程序获取,但是也会增加网站的服务器负担。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:防止网站内容被小偷采集的js代码 原创 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS 有名函数表达式全面解析

    JS 有名函数表达式全面解析 在 JavaScript 中,我们可以使用函数表达式(Function Expression)来定义一个函数。如果函数表达式给定了一个函数名,那么这个函数被称作有名函数表达式(Named Function Expression)。 有名函数表达式的语法 有名函数表达式的语法如下: var functionName = funct…

    JavaScript 2023年5月27日
    00
  • 关于JS中二维数组的声明方法

    声明一个二维数组通常使用以下两种方法: 1. 初始化数组并声明数组的行列数 使用嵌套的for循环初始化数组,示例如下: // 声明一个3行4列的数组 var matrix = []; for (var i = 0; i < 3; i++) { matrix[i] = []; for (var j = 0; j < 4; j++) { matrix…

    JavaScript 2023年5月27日
    00
  • js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)

    JS面向对象之常见创建对象的几种方式 在JavaScript中,创建对象一共有以下几种常见的方式: 工厂模式 构造函数模式 原型模式 下面我们将详细讲解每种创建对象的方式并且给出相应的示例。 工厂模式 工厂模式是用来创建多个相似对象的一种模式,它是通过一个工厂方法创建对象并返回。下面是一个简单的工厂模式的示例。 // 创建一个工厂对象 var bookFac…

    JavaScript 2023年5月27日
    00
  • js 时间格式与时间戳的相互转换示例代码

    下面我来为您介绍 JavaScript 时间格式与时间戳的相互转换攻略。 时间格式和时间戳的概念 在 JavaScript 中,时间可以使用时间戳和时间格式表示。时间戳是一个整数,表示自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来的毫秒数。而时间格式则是人类可读的日期和时间表示法。常见的时间格式有 ISO 格式、标准日期格式和自…

    JavaScript 2023年5月27日
    00
  • javascript格式化日期时间方法汇总

    下面我为大家详细讲解一下“javascript格式化日期时间方法汇总”的完整攻略。 1. 引言 在前端的工作中,日期时间格式转换是一个十分常见的问题。因此,有必要总结一下javascript中处理日期时间的API和格式化日期的方法,以便于在工作中快速有效地使用。 2. Date对象 在javascript中,我们可以使用内置的Date对象来处理日期时间。Da…

    JavaScript 2023年5月27日
    00
  • 再谈Javascript中的基本类型和引用类型(推荐)

    再谈JavaScript中的基本类型和引用类型 什么是基本类型和引用类型? JavaScript中的数据类型可以分为基本类型和引用类型。基本类型包括数字、字符串、布尔值、null、undefined和Symbol;而引用类型包括对象、数组、函数等。 基本类型是指简单的数据段,而引用类型是指由多个数据段(属性)组成的对象,每个属性都可以是基本类型或引用类型。 …

    JavaScript 2023年5月18日
    00
  • 鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解

    鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解 前言 在网页开发中,我们经常需要获取鼠标相对于页面或元素的位置信息,以便进行一些交互操作。为了更准确地获取鼠标的位置,网页开发中提供了多个属性,如screenY,pageY,clientY,layerY,offsetY。本文将对这些属性进行详细讲解,以帮助开发者更好地…

    JavaScript 2023年6月11日
    00
  • 动态加载js和css(外部文件)

    动态加载JS和CSS文件是在页面加载过程中向页面动态地添加外部资源文件。它可以帮助我们减少页面加载时间,提高网站性能,使网站更加简洁干净,增强用户体验。下面是完整攻略: 动态加载JS文件 通过DOM创建script标签 使用JavaScript函数 createElement() 和 appendChild() 创建一个新的script标签,将其插入到文档中…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部