网络爬虫的设计及实现完整版本doc文档格式.docx
《网络爬虫的设计及实现完整版本doc文档格式.docx》由会员分享,可在线阅读,更多相关《网络爬虫的设计及实现完整版本doc文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
1.2
课题研究的意义..............................................................................................
2
需求分析..................................................................................................................
3
2.1
功能需求分析..................................................................................................
2.2
系统性能分析..................................................................................................
4
系统设计..................................................................................................................
5
3.1
系统工作流程图..............................................................................................
3.2
数据结构设计..................................................................................................
6
3.3
系统各功能流程图..........................................................................................
7
系统实现................................................................................................................
10
4.1
相关技术分析................................................................................................
4.2
系统功能模块的实现....................................................................................
11
测试与结果............................................................................................................
17
结论..............................................................................................................................
23
致
谢............................................................................................
错误!
未定义书签。
参
考文献................................................................................................................
24
1引言
随着网络技术日新月异的发展,互联网俨然已成为信息的最大载体。
为了能够在浩瀚的信息海洋中精确地查询用户所需要的信息,搜索引擎技术应运而生。
目前比较流行的搜索引擎是Google和XX,他们拥有着庞大的用户数量。
作为搜索引擎的重要组成部分,网络爬虫的设计直接影响着搜索引擎的质量。
网络爬虫是一个专门从万维网上下载网页并分析网页的程序。
它将下载的网页和采集到的网页信息存储在本地数据库中以供搜索引擎使用。
网络爬虫的工作原理是从一个或若干初始网页的链接开始进而得到一个链接队列。
伴随着网页的抓取又不断从抓取到的网页里抽取新的链接放入到链接队列中,直到爬虫程序满足系统的某一条件时停止。
本说明书对课题背景进行简单介绍的同时,又对研究网络爬虫的意义进行了叙
述,在此基础上,详细的介绍来了利用C语言在linux系统上开发出多线程网络爬
虫的设计步骤。
1.1课题选题背景
搜索引擎是用户在网上冲浪时经常使用的一种工具,毫无疑问,每个用户都可
以通过搜索引擎得到自己所需要的网络资源。
搜索引擎一词在互联网领域得到广泛
的应用,但是每个地区对它又有着不同的理解。
在一些欧美国家搜索引擎常常是基
于因特网的,它们通过网络爬虫程序采集网页,并且索引网页的每个词语,也就是
全文检索。
而在一些亚洲国家,搜索引擎通常是基于网站目录的搜索服务。
总的来说:
搜索引擎只是一种检索信息的工具。
它的检索方式分为以下两种:
一种是目录型的方式,爬虫程序把网络的资源采集在一起,再根据资源类型的不同
而分成不同的目录,然后继续一层层地进行分类,人们查询信息时就是按分类一层
层进入的,最后得到自己所需求的信息。
另一种是用户经常使用的关键字方式,
搜索引擎根据用户输入的关键词检索用户所需资源的地址,然后把这些地址反馈给
用户。
1.2课题研究的意义
网络在我们的生活中越来越重要,网络的信息量也越来越大,研究该课题可以
更好的理解网络爬虫在搜索引擎中的作用以及网络爬虫的原理。
现实中,一般的服
务器大多是linux系统该课题更好的配合了linux系统上运行爬虫程序,加上界面
更容易操作。
21世纪是一个讲究信息安全的时代,于是网站上出现了越来越多的
https(超文本传输安全协议)协议的链接,该课题很好的利用了SSL协议解决了下载
https协议链接的问题。
设备的内存是珍贵的,如何更加合理有效地利用内存提高
内存的利用率是值得研究的,该课题为了解决内存的利用使用了内存池来提高内存
的使用率。
2需求分析
它将下载的网
页和收集到的信息存储在本地数据库中以供搜索引擎使用。
网络爬虫的工作原理
是从一个或若干初始网页的链接开始进而得到一个链接队列。
伴随着网页的抓取
又不断从抓取到的网页里抽取新的链接放入到链接队列中,直到爬虫程序满足系
统的某一条件时停止。
它是搜索引擎的重要组成部分。
2.1功能需求分析
(1)网页下载功能
①能够下载任何http协议和https协议的链接的网页。
②构造HTTP请求中的GET请求。
③分析HTTP响应请求。
(2)网页分析功能
①提取网页标题。
②提取网页关键字。
③提取网页摘要。
④提取网页链接并统计数量。
⑤把新链接加入到URL队列。
(3)内存池功能
①能够分配固定大小的内存。
②能够回收内存对象。
③能够释放内存对象。
④能够销毁内存池。
⑤能够分配固定大小的内存。
(4)保存功能
①能够正确保存网页以及网页信息到文件。
②功能把系统运行中的异常写入日志文件。
(5)界面
①可以配置参数和运行后台的爬虫系统。
②能够查看运行结果。
2.2系统性能分析
当用户使用系统时,系统需要能够对于一些异常状况系统能够记录并跳过此
异常继续执行。
系统需要具有较高的可移植性和可靠性。
系统需要具有很好的可
测试性和可维护性。
网络爬虫系统是不停的从万维网上下载网页和采集网页信息
的系统。
由于网络爬虫系统是搜索引擎的组成部分,搜索引擎要利用到爬虫系统
的信息,所以系统要设计合理的存储文件并建立索引。
3系统设计
3.1系统工作流程图
本系统通过IE共同访问Apache服务器的发布的页面、Apache服务器返回页
面方便用户操作。
(1)系统物理结构如图3-1:
用户
用户用户
互联网
APACHE服务器调用网
络爬虫系统
图3-1系统物理结构图
(1)界面的流程如图3-2:
配置界面
开始
显示结果
图3-2页面结构图.
(2)网络爬虫系统流程如图3-3:
创建内存池
初始化URL队列
下载网页
提取网页链接加入到
分析网页
URL队列
满足停止条件
否
是
结束
界面显示结果
图3-3系统流程图
3.2数据结构设计
系统中主要是使用了链表作为URL队列,而链表中的每个结构体是一个数据
单元,数据单元中的元素及其含义如表
3-1:
表3-1
数据结构表
字段
类型
含义
host
char*
网页所在的主机
port
int
网络服务器所使用的端口
dir
网页所在的目录
page
网页文件名
file
本地保存的文件名
pageinfo
保存网页信息的文件名
url
cha