1.网页爬虫原理及技术介绍
1.1网页爬虫的介绍
1.1.1原理:
网页爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
1.1.2网页爬虫技术一般具有的特点:
(1)类型多,数据量特别大。在抓取一些小规模数据的时候,一般只需要去复制粘贴或人工手动记录就可以了。可是,类似于信息的处理一般都是数以千万计算的,这可是非常庞大的,如果用手工记录,一百年也不能把这些数据记录下来,而且数据的来源一种聚拢式的收集于多个页面,要准确的拿到这些数据也非常困难。
(2)可靠性,实时性。在现今网络时代代谢快的时候,不可能只抓一次数据。而是需要抓很多次,存储在不用的地方,增强数据的可靠性和数据要真实。
(3)抓取的数据的时候一般是从官方页面抓取,这些都是可以确保数据的实时性以及可靠性还有精确性。
(4)抓取的网页一般都是信息准时更新和url不变的网页而且还要长期去访问以及截获数据。因为这些网页对于人们来规模很大,而且多个页面规则近似的特征。所以这些特征就指明了一个方向,便于我们更加方便的采集数据。因为网页的地址以及特征都相对固定,所以可以集中采集这数据,而且还不用考虑太多因为特征不一样的技术使用,所以可以专攻一个类型的数据收集,有更多高效合理的抓取策略。
1.2常用搜索算法
1.2.1 广度优先算法
广度优先算法用于爬虫的整体抓取逻辑,也叫做宽度优先算法,不追求深度而追求宽度,一层一层的搜索。
广度优先算法工作流程:
第1步:访问A。
第2步:访问B。
第3步:依次访问C,E,F。
在访问了B之后,接下来访问B的出边的另一个顶点,即C,E,F。前面已经说过,在本文实现中,顶点ABCDEFG按照顺序存储的,因此会先访问C,再依次访问E,F。
第4步:依次访问D,G。
在访问完C,E,F之后,再依次访问它们的出边的另一个顶点。还是按照C,E,F的顺序访问,C的已经全部访问过了,那么就只剩下E,F;先访问E的邻接点D,再访问F的邻接点G。
因此访问顺序是:A -> B -> C -> E -> F -> D -> G
1.2.2 深度优先遍历
深度优先遍历从某个顶点出发,首先访问这个顶点,然后找出刚访问这个结点的第一个未被访问的邻结点,然后再以此邻结点为顶点,继续找它的下一个新的顶点进行访问,重复此步骤,直到所有结点都被访问完为止。
深度优先算法工作访问顺序:
第一次访问:A->F->G
第二次访问:E->H->I
第三次访问:B
第四次访问:C
第五次访问:D
2.网络爬虫基本流程实现
在网络爬虫的系统框架中,主过程由控制器,下载器,解析器,源码分类,资源库三部分组成。URL管理器负责待抓取的URL集合和已抓取的URL集合,防止循环/重复抓取网页,这些处理都是用URL管理器处理。下载器将互联网上URL对应网页下载到本地的工具,解析器是负责网络爬虫的主要部分,负责的工作主要有:对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。源码分类将解析下来html源码具体进一步分类。资源库将分类后html源码存入数据库。
网络爬虫的基本工作流程如下:
1.将种子URL放入待抓取URL队列。
2.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的IP,并将URL对应的网页下载下来。
3.将下载网页从网页中提取出有价值的数据。
4.将提取数据进一步分类将需要数据存入数据库并且该网页URL放入队列中。
5.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。
3.总结
本文阐述了爬虫技术在互联网中的应用,并以爬虫搜索方法为研究目标,通过Java多线程对其中的最好最全算法进行算法实现。随着硬件技术、信息技术和物联网技术的不断发展,未来必将会出现大规模基于网页信息攫取的算法设计,各种新型的网络应用协议也会不断问世,这些技术成果都将极大地促进各类异构网络的融合过程,进一步提高计算机通信网络的数据分析功能。