SEO爱站网 logo SEO爱站网

泛目录站群排名:网络爬虫过程中5种网页去重方法简要介绍和指纹算法

高阶黑帽 1178 0 2019-10-05 23:51:01

想做好网站收录,一定要了解去重算法和指纹算法,只有这样才能更好地做好原创网页,帮助网站促进收录,提升排名。对一个新的网页,爬虫程序通过网页去重算法,最终决定是否对其索引。黑帽客SEO工作室今天就来详细为大家讲一下关于搜索引擎网页去重网络爬虫过程中5种网页去重方法简要介绍和指纹算法!

网页布局格式

一、近似重复网页类型,根据文章内容和网页布局格式的组合分为4种形式:

1、两篇文档在内容和布局格式上毫无区别,则这种重复称为完全重复页面。

2、两篇文档内容相同,但布局格式不同,则这种重复称为内容重复页面。

3、两篇文档有部分重要的内容相同,并且布局格式相同,则这种重复称为布局重复页面。

4、两篇文档有部分重要内容相同,但布局格式不同,则这种重复称为部分重复页面。

二、重复网页对搜索引擎的不利影响:

正常情况下,非常相似的网页内容不能或只能给用户提供少量的新信息,但在对爬虫进行抓取、索引和用户搜索会消耗大量的服务器资源。

搜索引擎整体架构

三、重复网页对搜索引擎的好处:

如果某个网页重复性很高,往往是其内容比较比较受欢迎的一种体现,也预示着该网页相对比较重要。应予以优先收录。当用户搜索时,在输出结果排序时,也应给与较高的权重。

四、重复文档的处理方式:

1、删除

2、将重复文档分组

网页去重算法

五、SimHash文档指纹计算方法:

文档指纹提取算法

1、从文档中提取具有权值的特征集合来表示文档。如:假设特征都是由词组成的,词的权值由词频TF来确定。

2、对每一个词,通过哈希算法生成N位(通常情况是64位或更多)的二进制数值,如上图,以生成8位的二进制值为例。每个词都对应各自不同的二进制值。

3、在N维(上图为8维)的向量V中,分别对每维向量进行计算。如果词相应的比特位的二进制数值为1,则对其特征权值进行加法运算;如果比特位数值为0,则进行减法运算,通过这种方式对向量进行更新。

4、当所有的词都按照上述处理完毕后,如果向量V中第i维是正数,则将N位的指纹中第i位设置为1,否则为0。

一般的,我们想抓取一个网站所有的URL,首先通过起始URL,之后通过网络爬虫提取出该网页中所有的URL链接,之后再对提取出来的每个URL进行爬取,提取出各个网页中的新一轮URL,以此类推。整体的感觉就是自上而下进行抓取网页中的链接,理论上来看,可以抓取整站所有的链接。但是问题来了,一个网站中网页的链接是有环路的。

首先介绍一个简单的思路,也是经常用的一个通用思路。我们将已经爬取过的网页放到一个列表中去,以首页为例,当首页被抓取之后,将首页放到列表中,之后我们抓取子网页的时候,如果再次碰到了首页,而首页已经被抓取过了,此时就可以跳过首页,继续往下抓取其他的网页,而避开了将首页重复抓取的情况,这样下来,爬取整站就不会出现一个环路。

黑帽客SEO教程网以这个思路为出发点,将访问过的URL保存到数据库中,当获取下一个URL的时候,就去数据库中去查询这个URL是否已经被访问过了。虽然数据库有缓存,但是当每个URL都去数据库中查询的话,会导致效率下降的很快,所以这种策略用的并不多,但不失为最简单的一种方式。

第二种方式是将访问过的URL保存到set中去,通过这样方式获取URL的速度很快,基本上不用做查询。但是这种方法有一个缺点,将URL保存到set中,实际上是保存到内存中,当URL数据量很大的时候(如1亿条),会导致内存的压力越来越大。对于小型的爬虫来说,这个方法十分可取,但是对于大型的网络爬虫,这种方法就难以企及了。

第三种方式是将字符进行md5编码,md5编码可以将字符缩减到固定的长度。一般来说,md5编码的长度约为128bit,约等于16byte。在未缩减之前,假设一个URL占用的内存大小为50个字节,一个字节等于2byte,相当于100byte。由此可见,进行md5编码之后,节约了大量的内存空间。通过md5的方式可以将任意长度的URL压缩到同样长度的md5字符串,而且不会出现重复的情况,达到去重的效果。

通过这种方式很大程度上节约了内存,scrapy框架采取的方式同md5方式有些类似,所以说scrapy在正常情况下,即使URL的数量级达到了上亿级别,其占用的内存比起set方式也要少得多。

第四种方式是使用bitmap方法将字符进一步压缩。这种方式的意思是在计算机中申请8个bit,即8个位,每个位由0或者1表示,这是计算机中最小的单元。8个位组成1个byte,一个位代表一个URL的话,为什么一个位可以确定一个URL呢?因为我们可以将一个URL进行一个哈希函数,然后将其映射到位上面去。

黑帽客SEO教程网举个栗子,假设我们有8个URL,分别对应8个位,然后通过位上面的0和1的状态,便可以表明这个URL是否存在,通过这种方法便可以进一步的压缩内存。但是bitmap方法有一个非常大的缺点,就是它的冲突会非常高,因为同用一个哈希函数,极有可能将两个不同的URL或者多个不同的URL映射到一个位置上来。实际上这种哈希的方法,它也是set方式的一种实现原理,它将URL进行一种函数计算,然后映射到bit的位置中去,所以这种方式对内存的压缩是非常大的。

简单的来计算一下,还是以一亿条URL来进行计算,相当于一亿个bit,通过计算得到其相当于12500000byte,除以1024之后约为12207KB,大概是12MB的空间。在实际过程中内存的占用可能会比12MB大一些,但是即便是如此,相比于前面三种方法,这种方式以及大大的减少了内存占用的空间了。

但是与此同时,该方法产生冲突的可能性是非常大的,所以这种方法也不是太适用的。那么有没有方法将bitmap这种对内存浓重压缩的方法做进一步优化,让冲突的可能性降下来呢?答案是有的,就是第五种方式。

第五种方式是bloomfilter,该方法对bitmap进行改进,它可以通过多个哈希函数减少冲突的可能性。通过这种方式,一方面它既可以达到bitmap方法减少内存的作用,另一方面它又同时起到减少冲突的作用。关于bloomfilter原理及其实现,后期肯定会给大家呈上,今天先让大家有个简单的认识。

Bloomfilter适用于大型的网络爬虫,尤其是数量级超级大的时候,采用bloomfilter方法可以起到事半功倍的效果,其也经常和分布式爬虫共同配合,以达到爬取的目的。

说到房地产经纪行业,很多人第一印象就是“乱”,然后是不专业等等负面的词汇,当然房地产经纪行业内部对于这种乱象自然有更深的感触。行业有存在的须要,就必需要发展,必需要规范。那么,采用先进的IT系统办理方式就成为了一个最佳的,也是十分须要的选择。

其实,在房产经纪行业中,类似的房产ERP系统早已存在市场多年,但他们都有一个共同的弱点,那就是开发这些系统的企业,大多来自行业外,无法有的放矢地解决房地产经纪行业中的一些真正的痛点。再者,这些系统大多存在开发理念陈旧,功能单一的问题。到家了的《ALL IN ONE》就是在这样的市场契机中诞生的。

只有中介公司才最懂中介ALL IN ONE是到家了房地产企业本身研发的,一套针对ERP、企业行政、房产网站以及对经济人等人员的培训的全面的办理系统。在公司的总结及钻研下把多年以来在行业中所积累的经验、心得以及业务逻辑,奖罚机制,工资体系等沉淀到All in One系统中。而这一软件已经经过市场检验后,得到了部分同行认可。目前已经在厦门、广西等地方的房产经纪公司开始运营,并得到一致好评。

据了解,房源、客源、业务逻辑、奖罚机制、流程办理是到家了ALL IN ONE系统的关键功能,它的逻辑非常复杂,细枝末节也很多,只有一个在业内沉淀了多年的企业才知道这其中的关键痛点是什么,才能合理规划架构,开发出一个足够专业的办理系统。黑帽客SEO教程网把业务的逻辑系统化:带看、成交、合同、业绩分配等等,以前需要人工记录、分配的工作现在可以通过录入系统后,通过系统来判断完成,并自动生成报表,实现真正的效率化办理和尺度化办理。

到家了的开发总监刘捷体现,之所以把这套系统命名为ALLINONE,,除了房产经纪活动中自己的需求以外,行政、培训、以及网站的功能也被纳入到了系统的功能之中,并且打通了壁垒,使之能够互联互通。

ALLINEONE解决了企业内部系统和外部网站的数据互通问题,企业数据有选择地展示在外网,无须同时去维护两套差别的系统。当经纪人在完成本身的内部工作的时候,就同时把数据发布到外网,客户就能通过这些数据进行看房、委托等。

对于客户,ALLINONE系统能够提供房源查看,720全景看房、卖家委托以及交易流程查询功能,房产交易复杂的流程在ALLINONE系统的帮手下,得到了最大程度的简化,提高了交易效率,为全社会节约资源。

目前,到家了正积极地把这套系统推向市场,对于房地产经纪行业而言,这无疑是一件好事,一些中小型的房地产中介无法自行开发系统时就有了新的选择,黑帽客SEO教程网能够让他们站在和大公司一样的层面竞争,因为,除了系统自己以外,ALLINONE给市场带来的,还有先进的办理经验,而这,是一笔最为名贵的财富。

本文标签:黑帽客SEO教程:网络爬虫过程中5种网页去重方法简要介绍和指纹算法

版权与免责声明:如发现内容存在版权问题,烦请提供相关信息发邮件至heimaoke@qq.com,黑帽客SEO博客将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。

网友跟帖
展开