SEO密码

通用爬虫框架

生活就像巧克力

生活就像巧克力,你永远不会知道你会得到什么—–阿甘正传

  通用爬虫框架,以这些网页的链接地址作为种子URL,将这种子URL放入待抓取URL队列中,爬虫从待抓取URL队列依次读取,并将URL通过DNS解析,把链接地址转换为网站服务器对应的IP地址,然后将其和网页相对路径名称交给网页下载器,网页下载器负责页面内容的下载。对于下载到本地的网页,一方面将其存储到页面库中,等待建立索引等后续处理;另一方面将下载网页的URL放入已抓取URL列队中,这个队列记载了爬虫系统已经下载过网页URL,以避免网页的重复抓取。对于刚下载的网页,从中抽出所包含的所有链接信息,并在已抓取URL队列中检查,如发现链接还没有抓去过,则将这个URL放入待抓取URL队列末尾,在之后抓取调度中会下载这个URL对应的网页。

形成循环

       如上这般形成循环,知道待抓取URL列队为空,就代表着爬虫系统已经将能够抓取的网页尽数抓完,这是完成了一轮完整的抓取过程。就爬虫来说,往往还需进行网页去重及反作弊。
       将互联网页面划分为几个部分
       已下载页面集合:爬虫已经从互联网下载到本地进行索引的网网页集合。
       已过期网页集合:由于网页数量巨大,爬虫完整抓取一轮需要较长的时间,在抓取过程中,很多已经下载的网页可能过期。之所以如此,是因为互联网网页处于不断的动态变化过程中,所以易产生本地网页内容和真实互联网网页不一致的情况。
       待下载网页集合:如第一张图中待抓取URL列队中的网页,这些网页即将被爬虫下载。
       可知网页集合:这些网页还没有被爬虫下载,也没有出现在待抓取URL列队中,不过通过已经抓取的网页或者在待抓取URL列队中的网页,总是能够通过链接关系发现它们,稍微晚些实会被爬虫抓取并索引。
       不可知网页集合:有些网页对于爬虫来说是无法抓取到的,这部分网页构成了不可知网页集合。事实上,这部分网页所占比例很高。
       从上理解爬虫的角度看,对互联网网页给出如上划分有助于深入理解搜索引擎爬虫所面临的问题。据具体应用的不同,爬虫系统在许多方面存在差异,大体而言,将爬虫划分为几种类型。

爬虫的类型

       批量型爬虫(BatchCrawler):批量型爬虫有比较明确的抓取范围和目标,当爬虫达到这个设定的目标后,即停止抓取过程。至于具体目标可能各异,或许是设定抓取一定数量的网页即可,要么是设定抓取消耗的时间等,不一而足。
      增量型爬虫(IncrementalCrawler):增量型爬虫与批量型爬虫不同,会保持持续不断的抓取,对于抓取到的网页,要定期更新,因为互联网网页处于不断变化中,新增网页、网页被删除或者网站内容更改都很常见,而增量型爬虫需要及时反映这种变化,所以处于持续不断的抓取过程中,不是在抓取新网页,就是在更新已有网页。通用的商业搜索引擎爬虫基本都属于此类。

      垂直型爬虫(FoncusedCrawler):它的关注特定主题内容或者属于特定行业的网页,比如对与健康网页来讲,只需从互联网页面里找到与健康相关的页面内容即可,其他行业的内容不在考虑范围。垂直型爬虫一个最大的特点和难点就是【怎样识别网页内容是否属于指定行业或者主题】。从节省系统资源的角度来讲,不大可能把所有互联网页面下载下来之后再去筛选,折腾资源也太过分了,往往需要爬虫在抓取阶段就能够动态识别某个网址是否与主题相关,并尽量不去抓取无关页面,以达到节省资源的目的。垂直搜素网站或垂直行业网站往往需要此种类型的爬虫。

表情包

       通用网络爬虫又称全网爬虫(ScalableWebCrawler),爬行对象从一些种子URL扩充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。由于商业原因,它们的技术细节很少公布出来。这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。虽然存在一定缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值。

      通用网络爬虫的结构大致可以分为页面爬行模块、页面分析模块、链接过滤模块、页面数据库、URL队列、初始URL集合几个部分。为提高工作效率,通用网络爬虫会采取一定的爬行策略。常用的爬行策略有:深度优先策略、广度优先策略。

定向抓取相关网页资源的聚焦

      搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,所以,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。