没有合适的资源?快使用搜索试试~ 我知道了~
学士学位论文--基于广度优先算法的多线程网络爬虫.doc
0 下载量 46 浏览量
2023-06-30
08:04:58
上传
评论
收藏 1.21MB DOC 举报
温馨提示
试读
69页
学士学位论文--基于广度优先算法的多线程网络爬虫.doc
资源推荐
资源详情
资源评论
沈阳理工大学学士学位论文
I
摘要
目前即使通讯软件在平时的生活中有着十分广泛的应用,但是对绝大部分的软件
来说,都必须应用在互联网上,必须在一个 INTERNET 环境下才能使用。有时候单位
内部的员工,同学,在没有互联网环境下或因其他原因希望不用 INTERNET 就可以进
行信息交互,这样开发局域网通信就有了必要性。本文提出了局域网信息交互的需求,
并详细对网络协议 TCP/IP 协议族进行了介绍和研究,如 TCP,UDP,广播等相关技术。
并对网络信息交互原理惊醒了说明,在此基础上利用 SOCKET 网络编程实现了一种基
于 WINDOWS 平台的局域网信息交互功能。
网络爬虫是一种自动搜集互联网信息的程序。通过网络爬虫不仅能够为搜索引擎采集网
络信息,而且可以作为定向信息采集器,定向采集某些网站下的特定信息,如招聘信息,
租房信息等。
本文通过 JAVA 实现了一个基于广度优先算法的多线程爬虫程序。为何要使用多线
程,以及如何实现多线程;系统实现过程中的数据存储;网页信息解析等。
通过实现这一爬虫程序,可以搜集某一站点的 URLs,并将搜集到的 URLs 存入数据
库。将解析的网页存入 XML 文档。
【关键词】 网络爬虫; SOCKET 编程;TCP/IP;网络编程 ;JAVA
沈阳理工大学学士学位论文
II
Abstract
Instant message software in our daily lives has a very wide range of application ,
However ,most of the software must be used in the Internet , and it must be used in a
Internet environment .Sometimes Internal staff, students ,may not have the Internet
environment or other reasons do not wish to be able to communicate on the Internet .This
development will have a need for LAN communication program .Therefore ,this paper
presents the needs of local area network exchange information Software ,And details of the
network protocol TCP/IP protocol suite are introduced and research such as TCP, UDP,
broadcast ,and other technologies . and network information exchange theory is discussed .
Base on this condition I use of Socket Network programming based on Windows platform to
develop a LAN chat application .
SPIDER is a program which can auto collect informations from internet. SPIDER can
collect data for search engines, also can be a Directional information collector, collects
specifically informations from some web sites, such as HR informations, house rent
informations.
In this paper, use JAVA implements a breadth-first algorithm multi-thread SPDIER. This
paper expatiates some major problems of SPIDER: why to use multi-threading, and how to
implement multi-thread; data structure; HTML code parse. etc.
This SPIDER can collect URLs from one web site, and store URLs into database.
【KEY WORD】SPIDER; JAVA;;Socket programming; TCP/IP ;
Network programming
沈阳理工大学学士学位论文
III
目录
1 绪论..........................................................................................................................1
1.1 网络爬虫的发展 ................................................................................................1
1.2 国内外技术发展现状 ........................................................................................2
1.3 系统设计的意义 ................................................................................................3
2 总体设计方案..........................................................................................................4
2.1 系统设计方案.....................................................................................................4
2.2 系统设计框图 ....................................................................................................4
2.3 网络爬虫的相关技术 ........................................................................................5
2.3.1 URL.............................................................................................................5
2.3.2 HTTP 协议..................................................................................................6
2.3.3 JAVA 多线程..............................................................................................9
2.3.4 JAVA 网络编程........................................................................................16
3 系统软件设计........................................................................................................21
3.1 系统软件概述 ..................................................................................................21
3.2 ECLIPSE 软件介绍 ............................................................................................21
3.3 服务器端设计 ..................................................................................................22
3.3.1 网本页解析部分.......................................................................................22
3.3.2 获取新的网络代理部分...........................................................................36
3.4.1 登录部分...................................................................................................37
3.4.2 Table 模块................................................................................................37
3.4.2 上传档及查询部分...................................................................................39
3.5 SOCKET 通信部分.............................................................................................39
3.5.1 什么是 Socket ...........................................................................................39
3.5.2 服务端部分...............................................................................................44
3.5.3 客户端部分...............................................................................................46
4 系统运行..................................................................................................................48
4.1 服务器端界面 ..................................................................................................48
4.2 客户端界面 ......................................................................................................50
结论..............................................................................................................................51
致 谢............................................................................................................................52
参考文献......................................................................................................................53
外文资料原文..............................................................................................................55
附录 B 汉语翻译 ........................................................................................................62
附录 C 程序代码 ........................................................................................................66
沈阳理工大学学士学位论文
1
1 绪论
1.1 网络爬虫的发展
在互联网发展的早期,网站数量相对较少,信息数据量不大,查找也比较容易。然
而伴随互联网井喷性的发展,普通网络用户想找到自己所需的数据简直如同在数据的海
洋里捞针,为满足大众信息检索需求的专业搜索网站便应运而生了。
所有搜索引擎的鼻祖,是 1990 年由 Montreal 的 McGill University 三名学生(Alan
Emtage、Peter Deutsch、Bill Wheelan)发明的 Archie(Archie FAQ)。Alan Emtage 等想
到了开发一个可以用文件名查找文件的系统,于是便有了 Archie。Archie 是第一个自动
索引互联网上匿名 FTP 网站文件的程序,但它还不是真正的搜索引擎。Archie 是一个可
搜索的 FTP 文件名列表,用户必须输入精确的文件名搜索,然后 Archie 会告诉用户哪
一个 FTP 地址可以下载该文件。由于 Archie 深受欢迎,受其启发,Nevada System
Computing Services 大 学 于 1993 年 开 发 了 一 个 Gopher ( Gopher FAQ ) 搜 索 工 具
Veronica(Veronica FAQ)。Jug head 是后来另一个 Gopher 搜索工具。虽然当时万维网
还未出现,但网络中档传输还是相当频繁的,而且由于大量的档散布在各个分散的 FTP
主机中,查询起来非常不便,因此 Alan Archie 工作原理与现在的搜索引擎已经很接近,
它依靠脚本程序自动搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表
达式查询。
当时,“机器人”一词在编程者中十分流行。计算机“机器人”(Computer Robot)
是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检
索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此, 搜索引擎的“机器人”
程序就被称为“蜘蛛”程序。
世界上第一个用于监测互联网发展规模的“机器人”程序是 Matthew Gray 开发的
World wide Web Wanderer。刚开始它只用来统计互联网上的服务器数量,后来则发展为
能够检索网站域名。与 Wanderer 相对应,Martin Kosher 于 1993 年 10 月创建了 ALIWEB,
它是 Archie 的 HTTP 版本。ALIWEB 不使用“机器人”程序,而是靠网站主动提交信
息来建立 自己的链接索引,类似于现在我们熟知的 Yahoo。
随着互联网的迅速发展,使得检索所有新出现的网页变得越来越困难,因此,在
Matthew Gray 的 Wanderer 基础上,一些编程者将传统的“蜘蛛”程序工作原理作了些
沈阳理工大学学士学位论文
2
改进。直到一些编程者提出了这样的设想,既然所有网页都可能有连向其它网站的链接,
那么从跟踪一个网站的链接开始,就有可能检索整个互联网。到 1993 年底,一些基于
此原理的搜索引擎开始纷纷涌现,但是早期的搜索引擎只是以搜索工具在数据库中找到
匹配信息的先后次序排列搜索结果,因此毫无信息关联度可言。而 RBSE 是第一个在搜
索结果排列中引入关键词串匹配程度概念的引擎。最早现代意义上的搜索引擎出现于
1994 年 7 月。当时 Michael Mauldin 将 John Leavitt 的蜘蛛程序接入到其索引程序中,创
建了大家现在熟知的 Lycos(2000 年被西班牙网络集团 Terra Lycos Network 收购)。同
年 4 月,斯坦福(Stanford)大学最为著名的两名博士生,美籍华人杨致远(Gerry
Yang)和 David Filo 共同创办了 Yahoo 公司,并成功地使搜索引擎的概念深入人心。从
此搜索引擎进入了高速发展时期。目前,互联网上有名有姓的搜索引擎已达数百家,其
检索的信息量也与从前不可同日而语。像国外的 Google,国内的百度,这样的搜索引擎
巨擘由于掌握的大多数的入口流量,成为互联网世界的霸主,并带来了巨大的商业价值。
1.2 国内外技术发展现状
因为搜索引擎的商业化应用带来了巨大的商业价值,所以作为搜索引擎的核心部分
的网络爬虫技术,也理所应当的成为了国内外研究的热点。对于网络爬虫的研究从上世
纪九十年代就开始了目前爬虫技术已经相当成熟。并催生了像 Baidu 和 Google 这样的
网络巨擘,而其它公司也纷纷推出了自己的搜索引擎。网络爬虫是搜索引擎的重要组成
部分。
现今,网络爬虫主要分为通用爬虫和聚焦爬虫两类。通用搜索引擎的目标是尽可能
大的网络覆盖率,通用搜索引擎大多提供基于关键词的检索。聚焦爬虫是一个自动下载
网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获
取所需要的信息。与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的
覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备
数据资源。同时,支持根据语义信息提出的查询。
网络爬虫的发展趋势随着 AJAX/Web2.0 等技术的流行,如何抓取 AJAX 等动态页
面成了搜索引擎急需解决的问题,如果搜索引擎依旧采用“爬”的机制,是无法抓取到
AJAX 页面的有效数据的。
除此之外,网络爬虫还主要面对着一下的这些问题(摘自百度百科
[5]
):
剩余68页未读,继续阅读
资源评论
黑色的迷迭香
- 粉丝: 715
- 资源: 4万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功