基于网络爬虫C#网络新闻采集系统设计+文献综述(4)
时间:2017-05-06 11:23 来源:毕业论文 作者:毕业论文 点击:次
如下图2.1所示: 图2.1 采集系统工作原理 爬虫工作原理以及关键技术概述 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万文网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 通用爬虫由于用户群体广泛,大多采用较高的W曲覆盖率,因此通常采用广度或深度优先策略搜索。通用爬虫实际上是代替了目录式搜索引擎中人的工作,它从种子链接丌始,不断抓取URL网页,通用爬虫进入某个超级文本时,它利用HTML语言的标记结构来搜索信息及获取指向其他超级文本的URL地址,可以完全不依赖用户干预实现网络上的自动“爬行"和搜索,如果这些链接未被该爬虫访问过,则又把这些爬虫放在下载队列中,进行抓取。通用爬虫就是通过这样一种方式来不断遍历整个互联网,一直到下载队列为空或者达到系统给定的停止条件。通用爬虫是基于传统的图算法作为工作原理的,它通常不管网页的内容,仅仅以一个或几个URL作为种子,利用宽度或者深度优先算法对整个互联网进行访问。这种爬虫的目标是覆盖整个web网络。 URL分析模块是爬虫的调度者,它将下载回来的URL存入列表,进行分析,选取下一个需要爬行的URL对象。 宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。此种搜索方式类似于先进先出的队列方式,其基本思想是认为与初始U RL在一定链接距离内的网页具有主题相关性的概率很大,它是先搜索完一个网页上所有的URL链接,然后再继续搜索下一层URL链接,直到发生回坏现象或者是搜索完毕。这种遍历方式优缺点明显,对于网页级数少的网站,爬行速度快,对于信息量大,网页级数多的网站难以深入。 深度优先搜索所遵循的搜索策略是尽可能“深”地搜索图.此种搜索方式类似于先进后出的队列方式,深度优先搜索从一个URL开始,检测该URL中还有没有没访问的链接,作为一条边,由一条边一直访问下去,直到再也访问不到边为止,即不含有URL的web网页,然后沿之前的边回溯访问其它没有访问的边,整个过程一直持续到回溯到初始的URL所有相关的URL被访问为止。这样搜索的优点是可以对于大型的,重要的站点,由于网页级数深,能够抓取到很多内容,但是很容易引起爬虫的陷入问题,无法返回结果,并对网站持续访问,加重服务器负担,因此这种搜索方式很少被通用爬虫采用。 综合考虑以上几种策略和国内信息导航系统搜索信息的特点,国内一般采用以宽度优先搜索策略为主,线性搜索策略为辅的搜索策略。对于某些不被引用的或很少被引用的HTML文件,宽度优先搜索策略可能会遗漏这些孤立的信息源,可以用线性搜索策略作为它的补充。 (责任编辑:qin) |