解决方案:页面关键字标签及采集新闻自动添加关键字
优采云 发布时间: 2022-09-25 03:08解决方案:页面关键字标签及采集新闻自动添加关键字
【IT168科技文章】为了方便搜索引擎,仿NB的文章系统为下一页的关键词做了标签!
第一步
在 foosun\Admin\Refresh\Function.asp 中找到
函数GetNewsContent(TempletContent,NewsRecordSet,NewsContent)
TempletContent = Replace(TempletContent,"{News_Title}",NewsRecordSet("Title"))
在下面添加
'关键字标签
如果 Not IsNull(NewsRecordSet("keywords")) 那么
TempletContent = Replace(TempletContent,"{News_keywords}",NewsRecordSet("keywords"))
其他
TempletContent = Replace(TempletContent,"{News_keywords}","")
如果结束
'关键字标签
在倒数第二行,即%>之前,添加
'************************************
'作者:lino
'将标题与关键字表中的记录匹配
'开始
'**********************************
函数replaceKeywordByTitle(title)
Dim whereisKeyword,i,theKeywordOnNews
Dim 关键字、rsRuleObj、theKeywordS
'***如果使用3.0版本,请将下游fs_Routine改为Routine
Set RsRuleObj = Conn.Execute("Select * from FS_Routine")
do while Not RsRuleObj.Eof
keyword = RsRuleObj("name")
whereisKeyword = InStr(Lcase(title),Lcase(keyword))
if(whereisKeyword>0) 那么
如果(theKeywordOnNews="") 那么
theKeywordOnNews=关键字
其他
theKeywordOnNews=theKeywordOnNews&""&keyword
如果结束
如果结束
RsRuleObj.MoveNext
循环
'如果关键字的长度大于100,截断长的那个
if(len(theKeywordOnNews)>99) 那么
theKeywordOnNews=left(theKeywordOnNews,99)
如果结束
replaceKeywordByTitle = theKeywordOnNews
结束函数
'******************************
'结束
第二步
在 foosun/funpages/lablenews.asp
查找选择插入字段
在下面添加
'页面关键字标签
网页关键字
'页面关键字标签
第 3 步
在 foosun/admin/info/newswords.asp 的第 306 行发现
INewsAddObj("KeyWords") = Replace(Replace(Request("KeywordText"),"""",""),"'","")
把这句话改成
'************************************
'作者:lino
'调用replaceKeywordByTitle方法过滤关键字
'如果用户自定义了关键字,则自动关键字设置不起作用
'开始
'**********************************
暗淡关键字文本
if (Request("KeywordText")="" or isempty(Request("KeywordText"))) 那么
KeywordText = replaceKeywordByTitle(ITitle)
其他
KeywordText = Request("KeywordText")
如果结束
如果 KeywordText "" 那么
INewsAddObj("KeyWords") = Replace(Replace(KeywordText,"""",""),"'","")
如果结束
'结束
'************************************
第四步
在Foosun/Admin/Collect/movenewstosystem.asp中关于第117行,找到
RsSysNewsObj("TxtSource") = RsNewsObj("来源")
改成
RsSysNewsObj("keywords") =replaceKeywordByTitle(RsNewsObj("title"))
程序更改OK!
在下面做一个标签,在自定义标签的新闻浏览中可以自己选择页面关键词标签
具体标签如下{News_keywords},写在新闻模板的标题或元中心,方便搜索引擎收录!
操作方法:加载页面前执行js脚本,实现浏览器指纹变更
一般浏览器会先加载首页,然后再请求关联的js脚本文件。无论是在html中嵌入js代码,还是保存为单独的文件,都必须等待首页加载完毕,才能执行js代码。网上有人说js代码放在头上。事实上,这并不影响脚本执行的时机。因为js或者html还没有加载,怎么执行js代码。先看页面加载资源的顺序
我们来简单分析一下onload事件的执行时机。
Document.onload
加载完结构和样式后执行js。 【html和css都完成后执行】
Window.onload
不仅需要加载结构体和样式,还要执行所有的样式、图片等资源文件,加载完毕后会触发window.onload事件。
在 jquery 中准备好了
指定在 DOM 完全加载时执行的函数。
也许你会再想一想,先执行JavaScript再打开页面可以吗?答案是否定的,因为执行完 JavaScript 后,执行结果存储在一个变量中,当打开新页面时,js 变量会被清空。
有没有办法在页面加载前执行js代码?看来只从网页是没有办法解决的,所以我们需要从浏览器端入手。当输入一个 URL 或点击一个链接时,会导致在另一个页面需要加载之前执行 js 代码(注意页面只是准备加载,而不是一个字符已经下载)。这样做可以让你在页面加载前给某些变量赋值,页面加载后变量值不会消失。
打开wood浏览器的项目管理窗口,创建脚本代码步骤,输入要执行的JavaScript代码,选择代码执行时间为“页面加载前执行”,保存项目后,只执行项目一次(点击测试也可以),当在浏览器中打开任何 URL 时,首先执行这段 JavaScript 代码。如下图,为了方便具体效果的体验,设置一个弹窗代码在页面加载前执行。
然后在浏览器中输入网址打开网址,页面加载前会弹出一个窗口。由于是模态弹窗,点击确定后才会继续加载页面内容。页面加载后,js变量值不会丢失。
如果需要在页面加载前停止执行脚本代码,只需要再添加一个脚本代码步骤,代码为空,并设置执行时间为“停止加载前执行”。此步骤执行一次后,在浏览器中打开网页时不会执行脚本代码弹窗。
在网页加载之前注入和执行JavaScript脚本的作用是什么?可用于更改系统环境参数,如修改屏幕分辨率;执行以下代码后,网页在获取分辨率时会获取预设值而不是实际分辨率。
screen.width = 1024;屏幕.高度 = 768; screen.availWidth = 1024; screen.availHeight = 768; screen.availablewidth = 1024; screen.availableheight =768;
您还可以修改系统函数和替换函数函数。例如,如果在页面加载之前执行了以下代码,并且更改了系统的alert函数的功能,那么再次执行页面时不会弹出alert。
window.alert=function(txt){ 返回 txt;}
也可以通过JavaScript函数函数采集修改一些网站“浏览器指纹”以避免被网站跟踪。例如,在页面加载前执行如下代码,自动给画布指纹添加变化噪声,导致页面每次获取的“浏览器指纹”不同。
var injection = function () {const toBlob = HTMLCanvasElement.原型。 toBlob;常量 toDataURL = HTMLCanvasElement。原型。 toDataURL;const getImageData = CanvasRenderingContext2D。原型。 getImageData;//var noisify = function (canvas, context) { if (context) { const shift = { 'r': Math. floor(Math.random() * 10) - 5, 'g': Math.floor(Math.random() * 10) - 5, 'b': Math.floor(Math. random() * 10) - 5, 'a': Math.floor(Math.random() * 10) - 5 }; // const width = canvas.
宽度;常量高度 = 画布.高度; if (width && height) { const imageData = getImageData.apply(context, [0, 0, width, height]); for (let i = 0; i < height; i++) { for (let j = 0; j < width; j++) { const n = ((i * (width * 4)) + (j * 4)); imageData.data[n + 0] = imageData.data[n + 0] + shift.r; imageData.data[n + 1] = imageData.data[n + 1] + shift.g; imageData .data[n + 2] = imageData.data[n + 2] + shift.b; imageData.data[n + 3] = imageData.data[n + 3] + shift.a; } } // 窗口。
top.postMessage("canvas-fingerprint-defender-alert", '*'); context.putImageData(imageData, 0, 0); } }};//Object.defineProperty(HTMLCanvasElement.prototype, "toBlob", { "value": function () { noisify(this, this.getContext(" 2d")); return toBlob.apply(this, arguments); }});//Object.defineProperty(HTMLCanvasElement.prototype, "toDataURL", { "value": function () { noisify(this, this.getContext ("2d")); return toDataURL.apply(this, arguments); }});//Object .defineProperty(CanvasRenderingContext2D.
prototype, "getImageData", { "value": function () { noisify(this.canvas, this);返回获取图像数据。应用(这个,参数); }});/ /文档。文档元素。数据集。 cbscriptallow = true;};inject();