搜索引擎抓取系统

作者:鼎极网络发布日期:2019-11-13浏览次数:18

  搜索引擎抓取系统概述()

  编者按:站长朋友们,今后定期都将在这里跟大家分享一些有关搜索引擎工作原理及网站运营相关的内容,今天先简单介绍一下关于搜索引擎抓取系统中有关抓取系统基本框架、抓取中涉及的网络协议、抓取的基本过程三部分。

  互联网信息爆发式增长,如何有效的获取并利用这些信息是搜索引擎工作中的首要环节。数据抓取系统作为整个搜索系统中的上游,主要负责互联网信息的搜集、保存、更新环节,它像蜘蛛一样在网络间爬来爬去,因此通常会被叫做“spider”。例如我们常用的几家通用搜索引擎蜘蛛被叫做:BaiduspdierGooglebotSogou Web Spider等。

  Spider抓取系统是搜索引擎数据来源的重要,如果把web理解为一个有向图,那么spider的工作过程可以认为是对这个有向图的遍历。从一些重要的种子 URL开始,通过页面上的超链接关系,不断的发现新URL并抓取,尽大可能抓取到更多的有价值网页。对于类似百度这样的大型spider系统,因为每时 每刻都存在网页被修改、删除或出现新的超链接的可能,因此,还要对spider过去抓取过的页面保持更新,维护一个URL库和页面库。

  1spider抓取系统的基本框架

  如下为spider抓取系统的基本框架图,其中包括链接存储系统、链接选取系统、dns解析服务系统、抓取调度系统、网页分析系统、链接提取系统、链接分析系统、网页存储系统。

1.png

  2spider抓取过程中涉及的网络协议

  搜索引擎与资源提供者之间存在相互依赖的关系,其中搜索引擎需要站长为其提供资源,否则搜索引擎就无法满足用户检索需求;而站长需要通过搜索引擎将自己的 内容推广出去获取更多的受众。spider抓取系统直接涉及互联网资源提供者的利益,为了使搜素引擎与站长能够达到双赢,在抓取过程中双方必须遵守一定的 规范,以便于双方的数据处理及对接。这种过程中遵守的规范也就是日常中我们所说的一些网络协议。以下简单列举:

  http协议:超文本传输协议,是互联网上应用为广泛的一种网络协议,客户端和服务器端请求和应答的标准。客户端一般情况是指终端用户,服务器端即指网 站。终端用户通过浏览器、蜘蛛等向服务器指定端口发送http请求。发送http请求会返回对应的httpheader信息,可以看到包括是否成功、服务 器类型、网页近更新时间等内容。

  https协议:实际是加密版http,一种更加安全的数据传输协议。

  UA属性:UAuser-agent,是http协议中的一个属性,代表了终端的身份,向服务器端表明我是谁来干嘛,进而服务器端可以根据不同的身份来做出不同的反馈结果。

  robots协议:robots.txt是搜索引擎访问一个网站时要访问的个文件,用以来确定哪些是被允许抓取的哪些是被禁止抓取的。 robots.txt必须放在网站根目录下,且文件名要小写。详细的robots.txt写法可参考 http://www.robotstxt.org 。百度严格按照robots协议执行,另外,同样支持网页内容中添加的名为robotsmeta标 签,indexfollownofollow等指令。

  3spider抓取的基本过程

  spider的基本抓取过程可以理解为如下的流程图:

2.png

  4.spider抓取过程中的策略

  spider在抓取过程中面对着复杂的网络环境,为了使系统可以抓取到尽可能多的有价值资源并保持系统及实际环境中页面的一致性同时不给网站体验造成压力,会设计多种复杂的抓取策略。以下简单介绍一下抓取过程中涉及到的主要策略类型:

  1、抓取友好性:抓取压力调配降低对网站的访问压力

  2、常用抓取返回码示意

  3、多种url重定向的识别

  4、抓取优先级调配

  5、重复url的过滤

  6、暗网数据的获取

  7、抓取反作弊

  8、提高抓取效率,高效利用带宽

  1、抓取友好性

  互联网资源庞大的数量级,这就要求抓取系统尽可能的高效利用带宽,在有限的硬件和带宽资源下尽可能多的抓取到有价值资源。这就造成了另一个问题,耗费被抓网站的带宽造成访问压力,如果程度过大将直接影响被抓网站的正常用户访问行为。因此,在抓取过程中就要进行一定的抓取压力控制,达到既不影响网站的正常用户访问又能尽量多的抓取到有价值资源的目的。

  通常情况下,基本的是基于ip的压力控制。这是因为如果基于域名,可能存在一 个域名对多个ip(很多大网站)或多个域名对应同一个ip(小网站共享ip)的问题。实际中,往往根据ip及域名的多种条件进行压力调配控制。同时,站长平台也推出了压力反馈工具,站长可以人工调配对自己网站的抓取压力,这时百度spider将优先按照站长的要求进行抓取压力控制。

  对同一个站点的抓取速度控制一般分为两类:其一,一段时间内的抓取频率;其二,一段时间内的抓取流量。同一站点不同的时间抓取速度也会不同,例如夜深人静月黑风高时候抓取的可能就会快一些,也视具体站点类型而定,主要思想是错开正常用户访问高峰,不断的调整。对于不同站点,也需要不同的抓取速度。

  2、常用抓取返回码示意

  简单介绍几种百度支持的返回码:

  1) 常见的404代表“NOT FOUND”,认为网页已经失效,通常将在库中删除,同时短期内如果spider再次发现这条url也不会抓取;

  2) 503代表“Service Unavailable”,认为网页临时不可访问,通常网站临时关闭,带宽有限等会产生这种情况。对于网页返回503状态码,百度spider不会把这条url直接删除,同时短期内将会反复访问几次,如果网页已恢复,则正常抓取;如果继续返回503,那么这条url仍会被认为是失效链接,从库中删除。

  3) 403代表“Forbidden”,认为网页目前禁止访问。如果是新urlspider暂时不抓取,短期内同样会反复访问几次;如果是已收录url,不会直接删除,短期内同样反复访问几次。如果网页正常访问,则正常抓取;如果仍然禁止访问,那么这条url也会被认为是失效链接,从库中删除。

  4)301 代表是“Moved Permanently”,认为网页重定向至新url。当遇到站点迁移、域名更换、站点改版的情况时,我们使用301返回码,同时使用站长平台网站改版工具,以减少改版对网站流量造成的损失。

  3、多种url重定向的识别

  互联网中一部分网页因为各种各样的原因存在url重定向状态,为了对这部分资源正常抓取,就要求spiderurl重定向进行识别判断,同时防止作弊行为。重定向可分为三类:http 30x重定向、meta refresh重定向和js重定向。另外,百度也支持Canonical标签,在效果上可以认为也是一种间接的重定向。

  4、抓取优先级调配

  由于互联网资源规模的巨大以及迅速的变化,对于搜索引擎来说全部抓取到并合理的更新保持一致性几乎是不可能的事情,因此这就要求抓取系统设计一套合理的抓取优先级调配策略。主要包括:深度优先遍历策略、宽度优先遍历策略、pr优先策略、反链策略、社会化分享指导策略等等。每个策略各有优劣,在实际情况中往往是多种策略结合使用以达到优的抓取效果。

  5、重复url的过滤

  spider在抓取过程中需要判断一个页面是否已经抓取过了,如果还没有抓取再进行抓取网页的行为并放在已抓取网址集合中。判断是否已经抓取其中涉及到核心的是快速查找并对比,同时涉及到url归一化识别,例如一个url中包含大量无效参数而实际是同一个页面,这将视为同一个url来对待。

  6、暗网数据的获取

  互联网中存在着大量的搜索引擎暂时无法抓取到的数据,被称为暗网数据。一方面,很多网站的大量数据是存在于网络数据库中,spider难以采用抓取网页的方式获得完整内容;另一方面,由于网络环境、网站本身不符合规范、孤岛等等问题,也会造成搜索引擎无法抓取。目前来说,对于暗网数据的获取主要思路仍然是通过开放平台采用数据提交的方式来解决,例如百度站长平台”“百度开放平台等等。

  7、抓取反作弊

  spider在抓取过程中往往会遇到所谓抓取黑洞或者面临大量低质量页面的困扰,这就要求抓取系统中同样需要设计一套完善的抓取反作弊系统。例如分析url特征、分析页面大小及内容、分析站点规模对应抓取规模等等。

 


关键词:

元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。 标签位于文档的头部,不包含任何内容。 标签的属性定义了与文档相关联的名称/值对。
  定义
  <meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。
  <meta> 标签位于文档的头部,不包含任何内容。<meta> 标签的属性定义了与文档相关联的名称/值对。
  meta是html语言head区的一个辅助性标签。几乎所有的网页里,我们可以看到类似下面这段的html代码:
  <head>
  <meta http-equiv="content-Type" content="text/html; charset=gb2312" />
  </head>
  也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,例如加入关键字会自动被大型搜索网站自动搜集;可以设定页面格式及刷新等等。
  组成
  meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。
  name属性
  name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。
  meta标签的name属性语法格式是:<meta name="参数" content="具体的参数值">;。
  其中name属性主要有以下几种参数:
  A、Keywords(关键字)
  说明:keywords用来告诉搜索引擎你网页的关键字是什么。
  举例:<meta name ="keywords" content="science,education,culture,politics,ecnomics,relationships,entertainment,human">
  B、description(网站内容描述)
  说明:description用来告诉搜索引擎你的网站主要内容。
  网站内容描述(description)的设计要点:
  ①网页描述为自然语言而不是罗列关键词(与keywords设计正好相反);
  ②尽可能准确地描述网页的核心内容,通常为网页内容的摘要信息,也就是希望搜索引擎在检索结果中展示的摘要信息;
  ③网页描述中含有有效关键词;
  ④网页描述内容与网页标题内容有高度相关性;
  ⑤网页描述内容与网页主体内容有高度相关性;
  ⑥网页描述的文字不必太多,一般不超过搜索引擎检索结果摘要信息的多字数(通常在100中文字之内,不同搜索引擎略有差异)。
  举例:<meta name="description" content="This page is about the meaning of science,education,culture.">
  C、robots(机器人向导)
  说明:robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。
  content的参数有all,none,index,noindex,follow,nofollow。默认是all。
  举例:<meta name="robots" content="none">
  D、author(作者)
  说明:标注网页的作者
  http-equiv属性
  http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。
  meta标签的http-equiv属性语法格式是:<meta http-equiv="参数" content="参数变量值"> ;其中http-equiv属性主要有以下几种参数:
  A、Expires(期限)
  说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。
  用法:<meta http-equiv="expires" content="Fri,12 Jan 2001 18:18:18 GMT">
  注意:必须使用GMT的时间格式。
  B、Pragma(cache模式)
  说明:禁止浏览器从本地计算机的缓存中访问页面内容。
  用法:<meta http-equiv="Pragma" content="no-cache">
  注意:这样设定,访问者将无法脱机浏览。
  C、Refresh(刷新)
  说明:自动刷新并指向新页面。
  用法:<meta http-equiv="Refresh" content="2;URL">;(注意后面的引号,分别在秒数的前面和网址的后面)
  注意:其中的2是指停留2秒钟后自动刷新到URL网址。
  D、Set-Cookie(cookie设定)
  说明:如果网页过期,那么存盘的cookie将被删除。
  用法:<meta http-equiv="Set-Cookie" content="cookievalue=xxx; expires=Friday,12-Jan-2001 18:18:18 GMT; path=/">
  注意:必须使用GMT的时间格式。
  E、Window-target(显示窗口的设定)
  说明:强制页面在当前窗口以独立页面显示。
  用法:<meta http-equiv="Window-target" content="_top">
  注意:用来防止别人在框架里调用自己的页面。
  F、content-Type(显示字符集的设定)
  说明:设定页面使用的字符集。
  用法:<meta http-equiv="content-Type" content="text/html; charset=gb2312">
  G、content-Language(显示语言的设定)
  用法:<meta http-equiv="Content-Language" content="zh-cn" />
  功能
  上面我们介绍了meta标签的一些基本组成,接着我们再来一起看看meta标签的常见功能:
  帮助主页被各大搜索引擎登录
  meta标签的一个很重要的功能就是设置关键字,来帮助你的主页被各大搜索引擎登录,提高网站的访问量。在这个功能中,重要的就是对Keywords和description的设置。因为按照搜索引擎的工作原理,搜索引擎首先派出机器人自动检索页面中的keywords和description,并将其加入到自己的数据库,然后再根据关键词的密度将网站排序。因此,我们必须设置好关键字,来提高页面的搜索点击率。下面我们来举一个例子供大家参考:<meta name="keywords" content="政治,经济,科技,文化,卫生,情感,心灵,娱乐,生活,社会,企业,交通">
  <meta name="description" content="政治,经济,科技,文化,卫生,情感,心灵,娱乐,生活,社会,企业,交通">
  设置好这些关键字后,搜索引擎将会自动把这些关键字添加到数据库中,并根据这些关键字的密度来进行合适的排序。
  定义页面的使用语言
  这是meta标签常见的功能,在制作网页时,我们在纯HTML代码下都会看到它,它起的作用是定义你网页的语言,当浏览者访问你的网页时,浏览器会自动识别并设置网页中的语言,如果你网页设置的是GB码,而浏览者没有安装GB码,这时网页只会呈现浏览者所设置的浏览器默认语言。同样的,如果该网页是英语,那么charset=en。下面就是一个具有代表性的例子:
  <meta http-equiv=″content-Type″ content=″text/html; charset=gb2312″>
  该代码就表示将网页的语言设置成国标码。
  自动刷新并指向新的页面
  如果你想使您的网页在无人控制的情况下,能自动在指定的时间内去访问指定的网页,就可以使用meta标签的自动刷新网页的功能。下面我们来看一段代码:
  〈meta http-equiv=″refresh″ content=″2; URL=
  这段代码可以使当前某一个网页在2秒后自动转到页面中去,这就是meta的刷新作用,在content中,2代表设置的时间(单位为秒),而URL就是在指定的时间后自动连接的网页地址。

 

下面主要介绍(TKD)title keywords description

言归正传,什么是网站标题(Title

网站的标题在代码中是Title tag。我们在浏览一个网站的时候,经常会在浏览器顶端的蓝色显示条看到的信息就是网站标题。而在HTML代码中,网站标题位于头部文件中,在标签之间。举一个简单的例子:SEO教程。其中,“SEO教程就是这个网站的标题。

title标签的重要性

1.title标签是参与匹配排名为重要的要素;

2.title标签的写法有两个极端:

    a.只写网站名或者品牌名以及广告语——有利于树立品牌形象,但不利于关键词的优化,常见于知名网站、门户网站以及一些新站,不做SEO的网站:

    b.只写关键词,目标关键词——有利于关键词匹配,但是不利于树立品牌,一定程度损害了用户体验

c.绝大多数网站title介于两个极端之间。

(二)首页title写法原则

1.一般而言,首页title应该采用网站名称与关键词的组合方式;

2.根据网站自身的情况确定网站名称与关键词的组合方式,网站品名+关键词,关键词+网站品名;

3.title所包含的关键词热度越高越好,总指数不应太低;

4.根据团队实力,网站权重决定关键词的竞争度;

5.长不超过30个汉字,且越短越好;

6.重要关键词放在开头的靠前位置;

7.一般建议用英文“,”号,下划线“_"做分隔符,也可以用“|”。(有排名的关键词,一定在标题里)

(三)写法

1.营销网站:产品关键词及其长尾词(23个)+网站品名(或者品名关键词组合):

a.适合中小企业网站的优化;

b.前期可以全部使用长尾词;

c.随着网站权重的提高,可以做热度,竞争度的词;

d.营销站无特殊原因,一般应维持这种状态;

2.  信息类,门户类,资源共享类等流量型网站;

前期:长尾词(2-3个)+网站品名;

中期:核心关键词(高竞争度)、长尾词(2-3个)+网站品名;

后期:网站品名+核心关键词、长尾词(2-3个);

(四)其他注意事项

1.一般title是一组词组成的,而不是句子。出关键词,网站品名之外的字词都不应该出现。知名站除外。

2.网站品名为企业名或者产品名时应用简称;

3.title中的长尾词包含较短的关键词时,该较短的关键词一般不再重复:

a.尽可能缩短title长度,

b.有利于增加不同的关键词

(五)首页keyword标签

重要性在于搜索引擎,早期的搜索引擎因为自身的不完善,对mate标签给予的权重比较高,尤其是网站关键词keyword是搜索引擎快速判定网站内容的关键点,所以,早期的网站mate标签大家都比较重视,于是就出现了很多的黑帽SEO的作弊手法,比如:关键词堆砌,页面布局大量的关键词。随着搜索引擎的进一步发展,搜索引擎逐渐开始不单纯的依靠mate标签来判定网站的主题内容,削弱关键词所占的分量。于是就出现了目前的网站关键词keyword不写的局面。

1.按照标题包含的关键词在前,其他目标关键词在后的顺序填写。应将title中的关键词,包括长尾词中的短关键词,全部罗列出;

 

2.一般而言3-5个为宜,稍微多一些没什么影响;

 

3.一般建议用英文“,”号做分隔符;

 

(六)首页description标签(描述)