解决方案:网站设计,完善自动采集算法

优采云 发布时间: 2022-12-07 00:54

  解决方案:网站设计,完善自动采集算法

  在当今互联网的海量数据中,爬虫是不可或缺的。现在的互联网数据越来越大。虽然不同领域有细分,有的领域不能跨终端,但改变不了体量越来越大的事实。很多时候,我们不知道是否存在一个好的项目。除非你的产品非常出名,否则,在互联网的狂潮中,你只是淹没其中的一粒沙。连一个泡沫都没有破。

  

  而搜索引擎就是为了找到这些优秀的网站而诞生的。但在搜索引擎看来,即使是超级算法、超级计算机、超级模型,也不能满足现在的互联网收录。一些常见的站点,一些常见的内容,他都采集了,甚至收录几百万,几千万。但并不是所有的记录都有意义。也就是说,之前的收录已经过期,不再有任何意义。因为它们不能产生价值,所以那些收录是无用的收录。而这些收录是从爬虫中获取的。爬行动物如何获得这些信息?

  爬虫是搜索引擎的探路者。在互联网上,他按照自己的既定规则不断寻找超链接,然后将内容一层层、一层一层地复制。找到内容后,他自己整理对比,将有用的信息记录在自己的数据库中,舍弃无用的或重复性高的。经过一段时间的积累,这些数据的体量是相当大的,一些流行的收录数据可能有几百、几千,甚至过亿。如果这些数据都来自同一个站点,或者大部分都来自同一个站点,那么这个站点,在搜索引擎中,这个关键词就会排名比较靠前。下次有人来搜索引擎搜索这个关键词时,这个站点就会显示在更高的位置。

  

  这是一个大概的思路,当然实际操作会比这个复杂很多。比如如何在这几百万条记录中按照一定的权重对这些数据进行排序。哪些正反面,哪些关键词进来可以显示,哪些不显示等等。估计单单拍摄搜索的算法中概念很多,比如二分法,哪个可以有一定机会提高网站搜索速度。也可能是分布式数据库,每个数据库只查询部分数据,然后进行整合。当然如果有缓存,比如redis这样的接口,我们可以在比较短的时间内获得最大的收益。

  解决方案:盗站与采集,分析及反制之术PHP实现

  一般来说,只要你当过站长,应该都不知道文章采集吧?

  网站小偷,官方接触不久,他也牛逼,稍微配置一下,一个功能好,资源丰富的网站是他自己的...

  这就是网站站长的方便,是站长的困惑,也是Web2.0时代很多编辑的痛苦、无奈,甚至愤怒吧?

  允许合法的采集是很正常的,是一个很方便的工具(我经常用),但是未经同意的滥用却大大打击了很多热心作者的心……

  其实很早以前就关注过普通网页内容的处理,因为https的非对称加密成本太高,在国内也不常用——即使是需要一定安全性的网站。巧合的是,我发现经过简单的处理,可以彻底解决网站盗用和非法采集的问题(如果让别人采集,不用这个技术就好了)。

  我写了一个程序包,用法可以从里面的test.php中了解到,在doc/design.txt中解释了程序对策的分析和设计。发出去分享一下。。。如果你发现使用中的bug愿意告诉我,可以邮件联系我,或者在这里留言。谢谢

  附上设计说明,方便无法下载文档的朋友。

  [代码]

  介绍:

  窃取程序,俗称网站小偷程序,是分析目标网站html源码,使用query和

  替换方法是窃取目标 网站 主要内容的程序。

  网站采集,顾名思义,是指在目标网站上选取文章、图片、flash等内容的方法

  行为,采集程序可以自动化和批处理这种行为。因为需要共享资源,所以这个高

  无效的 采集 行为在许多 网站 中很普遍。但与此同时,缺点是没有有效的方法

  未经同意的非法采集可以被屏蔽。

  针对上述两个程序的行为,通过分析其工作原理,巧妙设计,本程序有望解决

  这个由来已久的问题。

  ---------------------------------------------- --------------------------

  工作原则:

  Press:工作原理的设计是根据目标问题的具体情况来设计的,所以如果想明白为什么要采用

  使用这种方法,可以参考下面关于网站盗窃原理和采集程序的解释。

  1、浏览器请求指定文本时,服务器端对文章的内容进行异化处理(加密),浏览

  接收方收到后,通过Javascript还原(解密)显示。

  2. 解密密钥是和正文一起传输的,所以必须对密钥进行“模糊处理”才能制作出目标程序

  程序(即网站黑客和 采集 程序)很难定位和获取密钥。

  3.原件网站的唯一标识信息必须附在key上,这样如果文章不是直接从原件浏览

  自网站以来,Javascript中的解密是错误的(即文章毫无意义)。

  4、可以选择增加用户浏览时解密操作的行为事件。

  即:用户根据页面提示输入验证密钥或者只触发特定操作,Javascript的解密

  仅有效。同时可以加入干扰操作。如果干扰操作被触发,密钥也会失效。

  在:

  第一条:是必要的依据;

  第二条:针对采集(目前的采集程序还不能深入处理Js代码);

  

  第三条:打击盗版站。

  第四条:如果以后采集程序实现了深度处理Js的能力,可以抵制。

  设计要点:

  1.异化和恢复处理的算法必须非常有效。

  2. 界面应该足够简单,以便在支持服务器端脚本语言的模板中使用。

  ---------------------------------------------- --------------------------

  设计参考:

  >>加密算法

  服务器端(PHP)和浏览器端(JS)的算法是等价的。

  考虑到效率,只处理文本。

  算法:通过交换和移位原创字符串中的字符来加密。

  效率:Js环境直接支持Unicode,所以效率比较高;因为服务器端的PHP不直接支持

  国际化,因此需要预先转换为 UTF-16 (iconv)。

  >> 重点建设

  实际用于加密文本的密钥由“主密钥”和“认证密钥”组成。

  主密钥由一个标识字符串(标识原创 网站)和一个随机长度的随机字符串连接而成。

  验证码是一个区分大小写的随机字符串,类似于验证码(默认4个字符,可配置)。

  主密钥和验证密钥的合成采用“洗牌”算法,验证密钥相当于翻了几次牌。

  网站标识字符串应该唯一标识原创站点,不能直接存在于Js中——应该由Js自动获取

  您可以使用域名和 URL 的组合来形成:

  js端:从document.domain、document.URL中拦截;

  PHP 端:从 $_SERVER['SERVER_NAME'] 和 $_SERVER['REQUEST_URI'] 截获。

  所以在Js端需要通过eval(或者Function())获取一次master key!

  因为这段Js代码特征太明显,需要用简单的算法对这段代码进行改造。做这个

  段代码还具有随机字符串。这样就达到了“隐晦”结构的目的。通常,

  二次变换的解码只执行一次(或很少执行),因此其执行开销基本可以忽略不计。

  上面的描述看似复杂,但其实是一个重点:使用几种必要的方法来隐藏混在源代码中的秘密。

  key,导致无法通过解析自动获取key。

  这个设计是这个包的核心,否则很难彻底达到目的。

  >>用户参与

  如果采集程序集成了Js引擎,采集器就可以使用Js

  引擎提前执行一次,获取到正常数据后再进行分析。

  增加用户参与的机制(事件触发或输入验证密钥)利用了更多的随机用户操作因素。

  如果验证密钥是用户输入的,则源码中Js程序的内部关联被彻底打破,从而自动运行root

  

  这是不可能的。

  当然,让用户参与进来是不友好的,用户参与的程度取决于防盗、反挖矿的重要性。

  又或者,巧妙的“参与式”设计可以在很大程度上弱化这种不友好?

  >> 执行流程

  本程序可以嵌入到尚未采用该技术的网站系统中。

  对于 网站 使用模板,在模板中:

  采用前:文本数据---显示在容器中

  采用后:拦截数据---加密,变量存储---在容器中以Js方式展示

  对于直接硬编码的系统,需要在程序代码中做类似的处理。

  加密-Js构建(PHP):

  >> 创建管理器对象(T2box)获取加密密钥;

  >> 使用该密码加密文本;

  >> 将密文赋值给Js变量;

  >> 输出Js代码:基础代码、变量赋值、启动、干扰、显示等。

  解密-显示(Js):

  >> 获取认证密钥;

  >> 开始函数解码生成解密密钥;

  >> 解密显示Js变量中的文本。

  >>优点和缺点

  由于实际的文本数据是加密的,搜索引擎对页面的分析可能是一个问题,但目前

  有了各种 SEO 技术,这几乎不是问题。在页面上可用

  包括关键字、介绍,或直接插入收录关键字或页面介绍等的图层。

  ---------------------------------------------- --------------------------

  小偷程序原理:

  小偷程序通常直接请求原网站的内容,然后替换页眉标志性内容和页脚版权

  信息,以及一些广告等。或者干脆截取原网页中有用的数据作为自己的网站

  资源,同时提供可定制的页眉、页脚、广告和其他控件。从而达到窃取网站的目的。

  它有一个缺点:如果修改原来的网站,需要重新分析网站代码,重写程序。

  这样的程序一般都很简单,代码量也少,但也仅此而已。与原网站改版的风险相比,

  它的成本是可以接受的。

  (在本程序中,内容页的文字是变形的,所以无法直接“截取”使用信息——

  “拦截”是加法,“替换”是减法)

  采集计划理由:

  采集一般来说,首先,对于一个有文章内容页面链接列表的页面,分析提取一个有用的文章页面的URL,

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线