下面是防止网站内容被小偷采集的js代码的完整攻略,包含以下步骤:
步骤一:禁止右键菜单和文字选择
在网页中加入以下代码可以禁止鼠标右键菜单和文字选择:
<body oncontextmenu="return false" onselectstart="return false">
这样做可以有效防止普通用户使用鼠标右键复制网页内容或者选择文字后进行复制,但是并不能阻止采集程序直接获取到网页内容。
步骤二:使用 CSS 隐藏内容
在网页中加入以下 CSS,可以让部分内容在网页中不被显示,但是采集程序仍然能够获取到这些内容。这种方法只适用于需要保护的内容较少的情况:
.content {
display: none;
}
步骤三:使用 JavaScript 动态生成内容
最终防止网站内容被小偷采集的方法是使用 JavaScript 动态生成内容,这样采集程序就很难获取到网页内容。以下是具体实施的步骤:
- 在 HTML 中定义一个空的容器:
<div id="content"></div>
- 使用 JavaScript 生成内容并加入容器中:
var content = '需要保护的内容';
document.getElementById('content').innerHTML = content;
- 在生成内容的同时,将内容中所有的文字字符分隔成单个字,再加入一个随机数,混淆文字字符的顺序。这样做可以防止采集程序使用正则表达式等方式获取内容。
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技术站