网页爬虫系统的设计

时间:2022-03-25 09:53:15

网页爬虫系统的设计

[摘 要]随着现代化社会的飞速发展,网上的巨大的信息量获取给用户带来了许多的麻烦。由于工作和生活节奏的需求,人们需要更加高效便捷地使用搜索引擎来帮助他们。网络信息的筛选和过滤便成为重要的一个环节,从而衍生出网络爬虫这一系统来为大家提高互联网信息获取的高效性和准确性。本文的目的在于研究和探索如何提高搜索的效率以及在最短的时间内让用户获取到需要的信息。

[关键词]网络爬虫;搜索引擎;提高效率

中图分类号:TP393 文献标识码:A 文章编号:1009-914X(2015)05-0226-01

1 引言

随着互联网的高速发展,网络上的信息量迅速增加,特别是近些年来,网络信息呈爆发式增长。有时候我们访问网页时,网页上出现太多的不必要的信息,比如各种垃圾广告和植入信息。

在互联网的发展中,用户体验占据了至关重要的作用。正是由于每天都有巨大的信息量通过互联网传递给我们,所以我们要通过工具对其进行筛选,对于我们所需要的信息,则可以借助关键字来获取我们所想要的信息。

从上个世纪九十年代开始,人们就已经开展和研究网络爬虫。爬虫这项技术在现在已经非常成熟了,同时它也是搜索引擎的重要组成成分。Nutch,Larbin,Heritrix都是网络上很有名的开源爬虫。对于网络爬虫来说,网页搜索策略和网页分析策略都是很重要的部分。

现在对于大众来说,比较熟悉的爬虫引擎有雅虎、谷歌、百度等。这些搜索引擎和本文所要研究的不一样。但是大概的原理在一定程度上是相似的。

至可以说是垃圾信息,页面分析的爬虫技术就是基于此产生的,用来获取更有价值的信息。

2 网页爬虫系统的分析

2.1 系统功能需求

网页爬虫系统的设计与实现需要考虑好系统的功能健全还要考虑好系统的的扩展和系统的性能,为了方便以后对系统进行重构,系统设计需要按照以下的规则:

(1)系统为多线程机制

网络爬虫支持多线程同时进行操作,爬虫在局域网内并行运行,从而使系统的整体运行的效率得到提高,并且在最短的时间获取所需的信心。

(2)系统的功能完善

2.2 系统功能设计

网页爬虫要实现更加人性化,就要从指定的URL地址抓取到特定的页面内容,接着解析出页面中的链接地址,然后再去访问这些URL,重复进行,直到得到的结果满意,爬虫存在的目的就在于此,根据这个宗旨。

根据需求,需要实现以下几个基本功能模块:

(1)网页爬取模块:主要实现的是通过从URL管理传获取 URL,进行地址析,通过 HTTP 协议访问URL指定的页面,同时接收服务器端传送的页面信息。

(2)搜索策略模块:主要实现的是管理爬取网页所选取的搜索策略,宽度优先搜索算法是本系统采用的算法,对搜索算法进行改进并提高搜索效率。

(3)解析页面模块:主要是实现提取的页面内容,提取的内容有Css 脚本,图片,视频,文本,链接,Js,等其他文件。

3 系统主要功能模块设计

3.1 网页爬取模块设计

(1)网页爬取过程

系统开始就需要实现网页的爬取,通过所要抓取的内容以及给定指定的URL网址,这个模块也是系统的核心,网络中相关的网页需要被爬虫去收集。网页信息要爬取再保存到本地。本系统设计的爬虫是通过多线程分配并行进行调度的,URL地址先从URL队列中获得,再从Web服务器发送数据请求接收Web服务器返回的数据;返回存储到本地的网页数据进行格式化。

对于以上的流程,为了避免耗费不必要的时间以及无限制等待响应缓慢的服务器或规模庞大的网页,我们必须必须需要注意的是HTTP向Web服务器发送请求后,等待机制需要被设定超时。响应包的头部会被客户端解析出来,获得重定向信息和状态编码。循环的重定向一个循环的链是否存在可以通过维护一个URL哈希表来检测的,如阻止进一步循环的相同的URL在链中出现的话则。必要的错误检测和异常处理在页面获取过程中是非常重要的,因为程序代码必须能处理服务器的各种响应。

(2)HTTP协议

对于HTTP协议需要了解,Java中有个HTTPClient组件与url进行连接。

3.2 搜索策略模块设计

启动了爬去网页的程序后,在Internet中开始搜索网页,采用宽度优先算法。这种搜索算法就是数据结构中的宽度优先算法,思路是这样的:最先获取指定的URL的网页,然后提取该网页中的所有URL,在一个个的去获取URL地址,如何没有的话,就结束这个遍历,同一个层次的网页上的URL链接遍历完了后,就继续下一层。就这样一层层的进行处理,不过这样有可能导致一个无穷的遍历,如果是一个环状图的话就可能变成一个死循环了。不过它的好处就是能计算出网络中两个节点的最短路径,所以它经常被作为实现爬虫的最佳策略,又因为这个算法十分的容易实现,所以我们采用该算法来实现。

3.3 页面分析模块设计

通过爬虫搜索指定URL的内容进行分析,搜索下来的网页,进行URL处理,网页正文,Xml,Javascipt脚本,Css文件提取,通过指定相应的规则来进行分析。

抓取网页的源码,然后去判断网页的编码,否则很大程度上会获取到乱码。首先看看的Http头的Charset,一般来书,这个会比较准,然后再看Http的头里的Charset和网页的Meta里声明的Charset是否一致,所以人工加了一次判断,若不同的话就到内存流里使用网页的编码去重新读取一次源代码。

3.4 网页管理模块设计

(1)网页保存

网页信息的保存,通过缓存空间保存网页信息的系统,可以为各个页面设置独立的文件用来保存网页的基本信息,各个文件的名字可以按照页面中的URL层次来进行划分,本地缓存文件目录的建立,保存到本地数据库将抓取到的网页,与此同时还需要抓取页面的网页标题、URL地址、网页爬取的时间、网页大小、网页类型、保存位置等信息,保存到数据库中。

(2)页面本地化

通过中间的过滤服务器就得到了比较分析满足我们要的 Web 页面,但是在一定程度上我们的要求还是没有达到,我们需要去做的是对 Web 页面的内容进行分析和提取,大致需要被提取的内容有:

a 页面文本内容

b 页面的网页链接地址

c 获取网页中的 css,javascript 脚本

d 获取网页中的图片文件

e 获取网页中的多媒体文件

最开始我们通过爬虫获取得到的网页html文件,然后将图片,多媒体,css,js都抓取下来,接着对应现在的内容链接进行本地化处理,最后再本地页面中的链接中进行修改了,修改后获取的内容通过滤服务器来进行过滤。最后呈现在我们眼前的就是一个和原来一样的本地化网页了。

参考文献

[1] 刘淑梅,夏亮,许南山.主题搜索引擎网络爬虫的搜索策略.计算机应用[M].2010,19(3):49-52.

[2] 陈瑜芳,何克右.网络蜘蛛现代计算机[J].2009(11):141-144,148.

[3] 孙立伟,何国辉,吴礼发.网络爬虫技术的研究[J].2011(15):4112-4115.

上一篇:桃林口水库垂线孔窜风成因分析及阻风改造方案... 下一篇:冷却系统匹配优化设计