一个网站除了百度以外爬虫其爬虫是那什么呀
优采云 发布时间: 2020-05-06 08:02
网络爬虫根据系统结构和实现技术,大致可以分为以下几种类型:通用网路爬
虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web
Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫(Deep Web Crawler)。
实际的网路爬虫系统一般是几种爬虫技术相结合实现的[1]
。
通用网路爬虫
通用网路爬虫又称全网爬虫(Scalable Web
Crawler),爬行对象从一些*敏*感*词* URL 扩充到整个 Web,主要为门户站点搜索引擎和小型 Web 服务提供商采集数据。
由于商业缘由,它们的技术细节甚少公布下来。
这类网路爬虫的爬行范围和数目巨大,对于爬行速率和储存空间要求较高,对于爬行页面的次序要求相对较低,同时因为待刷新的页面太多,通常采用并行工作方
式,但须要较长时间能够刷新一次页面。 虽然存在一定缺陷,通用网路爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值[1]
。
通用网路爬虫的结构大致可以分为页面爬行模块 、页面剖析模块、链接过滤模块、页面数据库、URL 队列、初始 URL 集合几个部份。为提升工作效率,通用网路爬虫会采取一定的爬行策略。 常用的爬行策略有:深度优先策略、广度优先策略[1]
。
1)
深度优先策略:其基本方式是根据深度由低到高的次序,依次访问下一级网页链接,直到不能再深入为止。
爬虫在完成一个爬行分支后返回到上一链接节点进一步搜索其它链接。 当所有链接遍历完后e799bee5baa6e79fa5e98193e78988e69d8331333361313931,爬行任务结束。 这种策略比较适宜垂直搜索或站内搜索,
但爬行页面内容层次较深的站点时会导致资源的巨大浪费[1]
。
2)
广度优先策略:此策略根据网页内容目录层次深浅来爬行页面百度网络爬虫,处于较浅目录层次的页面首先被爬行。
当同一层次中的页面爬行完毕后,爬虫再深入下一层继续爬行。
这种策略才能有效控制页面的爬行深度,避免碰到一个无穷深层分支时未能结束爬行的问题百度网络爬虫,实现便捷,无需储存大量中间节点,不足之处在于需较长时间能够爬行
到目录层次较深的页面[1]
。
聚焦网络爬虫
聚焦网络爬虫(Focused
Crawler),又称主题网路爬虫(Topical Crawler),是指选择性地爬行这些与预先定义好的主题相关页面的网路爬虫[8]。
和通用网路爬虫相比,聚焦爬虫只须要爬行与主题相关的页面,极大地节约了硬件和网路资源,保存的页面也因为数目少而更新快,还可以挺好地满足一些特定人群
对特定领域信息的需求[1]
。
聚焦网络爬虫和通用网路爬虫相比,增加了链接评价模块以及内容评价模块。聚焦爬虫爬行策略实现的关键是评价页面内容和链接的重要性,不同的方式估算出的重要性不同,由此引起链接的访问次序也不同[1]
。
1)
基于内容评价的爬行策略:DeBra将文本相似度的估算方式引入到网路爬虫中,提出了 Fish Search
算法,它将用户输入的查询词作为主题,包含查询词的页面被视为与主题相关,其局限性在于难以评价页面与主题相关 度 的 高 低 。
Herseovic对 Fish Search 算 法 进 行 了 改 进 ,提 出 了 Sharksearch
算法,利用空间向量模型估算页面与主题的相关度大小[1]
。
2) 基于链接结构评价的爬行策略 :Web
页面作为一种半结构化文档,包含好多结构信息,可拿来评价链接重要性。 PageRank
算法最初用于搜索引擎信息检索中对查询结果进行排序,也可用于评价链接重要性,具体做法就是每次选择 PageRank 值较大页面中的链接来访问。
另一个借助 Web结构评价链接价值的方式是 HITS 方法,它通过估算每位已访问页面的 Authority 权重和 Hub
权重,并借此决定链接的访问次序[1]
。
3) 基于提高学习的爬行策略:Rennie 和 McCallum 将提高学习引入聚焦爬虫,利用贝叶斯分类器,根据整个网页文本和链接文本对超链接进行分类,为每位链接估算出重要性,从而决定链接的访问次序[1]
。
4) 基于语境图的爬行策略:Diligenti
等人提出了一种通过构建语境图(Context Graphs)学习网页之间的相关度,训练一个机器学习系统,通过该系统可估算当前页面到相关 Web
页面的距离,距离越逾的页面中的链接优先访问。印度理工大学(IIT)和 IBM 研究中心的研究人员开发了一个典型的聚焦网路爬虫。
该爬虫对主题的定义既不是采用关键词也不是加权矢量,而是一组具有相同主题的网页。
它包含两个重要模块:一个是分类器,用来估算所爬行的页面与主题的相关度,确定是否与主题相关;另一个是净化器,用来辨识通过较少链接联接到大量相关页面
的中心页面[1]
。
增量式网络爬虫
增量式网络爬虫(Incremental Web Crawler)是 指
对 已 下 载 网 页 采 取 增 量式更新和只爬行新形成的或则早已发生变化网页的爬虫,它还能在一定程度上保证所爬行的页面是尽可能新的页面。
和周期性爬行和刷新页面的网路爬虫相比,增量式爬虫只会在须要的时侯爬行新形成或发生更新的页面
,并不重新下载没有发生变化的页面,可有效降低数据下载量,及时更新已爬行的网页,减小时间和空间上的花费,但是降低了爬行算法的复杂度和实现难度。增量
式网路爬虫的体系结构[包含爬行模块、排序模块、更新模块、本地页面集、待爬行 URL 集以及本地页面URL 集[1]
。
增量式爬虫有两个目标:保持本地页面集中储存的页面为最新页面和提升本地
页面集中页面的质量。 为实现第一个目标,增量式爬虫须要通过重新访问网页来更新本地页面集中页面内容,常用的方式有:1)
统一更新法:爬虫以相同的频度访问所有网页,不考虑网页的改变频度;2) 个体更新法:爬虫依据个体网页的改变频度来重新访问各页面;3)
基于分类的更新法:爬虫依照网页改变频度将其分为更新较快网页子集和更新较慢网页子集两类,然后以不同的频度访问这两类网页[1]
。
为实现第二个目标,增量式爬虫须要对网页的重要性排序,常用的策略有:广
度优先策略、PageRank 优先策略等。IBM 开发的
WebFountain是一个功能强悍的增量式网路爬虫,它采用一个优化模型控制爬行过程,并没有对页面变化过程做任何统计假定,而是采用一种自适应的方
法依照当初爬行周期里爬行结果和网页实际变化速率对页面更新频度进行调整。北京大学的天网增量爬行系统致力爬行国外
Web,将网页分为变化网页和新网页两类,分别采用不同爬行策略。
为减轻对大量网页变化历史维护造成的性能困局,它依据网页变化时间局部性规律,在短时期内直接爬行多次变化的网页
,为尽早获取新网页,它借助索引型网页跟踪新出现网页[1]
。
Deep Web 爬虫
Web 页面按存在形式可以分为表层网页(Surface
Web)和深层网页(Deep Web,也称 Invisible Web Pages 或 Hidden Web)。
表层网页是指传统搜索引擎可以索引的页面,以超链接可以抵达的静态网页为主构成的 Web 页面。Deep Web
是这些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户递交一些关键词能够获得的 Web
页面。例如这些用户注册后内容才可见的网页就属于 Deep Web。 2000 年 Bright Planet 指出:Deep Web
中可访问信息容量是 Surface Web 的几百倍,是互联网上最大、发展最快的新型信息资源[1]
。
Deep Web 爬虫体系结构包含六个基本功能模块
(爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS 控制器)和两个爬虫内部数据结构(URL 列表、LVS 表)。 其中
LVS(Label Value Set)表示标签/数值集合,用来表示填充表单的数据源[1]
。
Deep Web 爬虫爬行过程中最重要部份就是表单填写,包含两种类型:
1)
基于领域知识的表单填写:此方式通常会维持一个本体库,通过语义剖析来选定合适的关键词填写表单。 Yiyao Lu[25]等人提出一种获取 Form
表单信息的多注解方式,将数据表单按语义分配到各个组中
,对每组从多方面注解,结合各类注解结果来预测一个最终的注解标签;郑冬冬等人借助一个预定义的领域本体知识库来辨识 Deep Web 页面内容,
同时借助一些来自 Web 站点导航模式来辨识手动填写表单时所需进行的路径导航[1]
。
2) 基于网页结构剖析的表单填写:
此方式通常无领域知识或仅有有限的领域知识,将网页表单表示成 DOM 树,从中提取表单各数组值。 Desouky 等人提出一种 LEHW
方法,该方式将 HTML 网页表示为DOM 树方式,将表单分辨为单属性表单和多属性表单,分别进行处理;孙彬等人提出一种基于 XQuery
的搜索系统,它就能模拟表单和特殊页面标记切换,把网页关键字切换信息描述为三元组单元,按照一定规则排除无效表单,将 Web 文档构造成 DOM
树,利用 XQuery 将文字属性映射到表单数组[1]
。
Raghavan 等人提出的 HIWE 系统中,爬行管理器负责管理整个爬行过程,分析下载的页面,将包含表单的页面递交表单处理器处理,表单处理器先从页面中提取表单,从预先打算好的数据集中选择数据手动填充并递交表单,由爬行控制器下载相应的结果页面[1]
。