网络爬虫设计学位学士论文.doc
《网络爬虫设计学位学士论文.doc》由会员分享,可在线阅读,更多相关《网络爬虫设计学位学士论文.doc(69页珍藏版)》请在三一办公上搜索。
1、 摘要 目前即使通讯软件在平时的生活中有着十分广泛的应用,但是对绝大部分的软件来说,都必须应用在互联网上,必须在一个INTERNET环境下才能使用。有时候单位内部的员工,同学,在没有互联网环境下或因其他原因希望不用INTERNET就可以进行信息交互,这样开发局域网通信就有了必要性。本文提出了局域网信息交互的需求,并详细对网络协议TCP/IP 协议族进行了介绍和研究,如TCP,UDP,广播等相关技术。并对网络信息交互原理惊醒了说明,在此基础上利用SOCKET网络编程实现了一种基于WINDOWS平台的局域网信息交互功能。网络爬虫是一种自动搜集互联网信息的程序。通过网络爬虫不仅能够为搜索引擎采集网络
2、信息,而且可以作为定向信息采集器,定向采集某些网站下的特定信息,如招聘信息,租房信息等。本文通过JAVA实现了一个基于广度优先算法的多线程爬虫程序。为何要使用多线程,以及如何实现多线程;系统实现过程中的数据存储;网页信息解析等。通过实现这一爬虫程序,可以搜集某一站点的URLs,并将搜集到的URLs存入数据库。将解析的网页存入XML文档。【关键词】 网络爬虫; SOCKET编程;TCP/IP;网络编程 ;JAVA AbstractInstant message software in our daily lives has a very wide range of application , H
3、owever ,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 commu
4、nication 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 discu
5、ssed . 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
6、 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
7、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 目录1 绪论11.1 网络爬虫的发展11.2 国内外技术发展现状21.3 系统设计的意义32 总体设计方案42.1 系统设计方案42.2 系统设计框图42.3 网络爬虫的相关技术52.3.1 URL52.3.2 HTTP协议62.3.3
8、 JAVA多线程92.3.4 JAVA网络编程163 系统软件设计213.1 系统软件概述213.2 Eclipse软件介绍213.3 服务器端设计223.3.1 网本页解析部分223.3.2 获取新的网络代理部分363.4.1 登录部分373.4.2 Table 模块373.4.2 上传档及查询部分393.5 Socket通信部分393.5.1 什么是Socket393.5.2 服务端部分443.5.3 客户端部分464 系统运行484.1 服务器端界面484.2客户端界面50结论51致 谢52参考文献53外文资料原文55附录B 汉语翻译62附录C 程序代码661 绪论1.1 网络爬虫的发展
9、在互联网发展的早期,网站数量相对较少,信息数据量不大,查找也比较容易。然而伴随互联网井喷性的发展,普通网络用户想找到自己所需的数据简直如同在数据的海洋里捞针,为满足大众信息检索需求的专业搜索网站便应运而生了。所有搜索引擎的鼻祖,是1990年由Montreal的McGill University三名学生(Alan Emtage、Peter Deutsch、Bill Wheelan)发明的Archie(Archie FAQ)。Alan Emtage等想到了开发一个可以用文件名查找文件的系统,于是便有了Archie。Archie是第一个自动索引互联网上匿名FTP网站文件的程序,但它还不是真正的搜索引
10、擎。Archie是一个可搜索的FTP文件名列表,用户必须输入精确的文件名搜索,然后Archie会告诉用户哪一个FTP地址可以下载该文件。由于Archie深受欢迎,受其启发,Nevada System Computing Services大学于1993年开发了一个Gopher(Gopher FAQ)搜索工具Veronica(Veronica FAQ)。Jug head是后来另一个Gopher搜索工具。虽然当时万维网还未出现,但网络中档传输还是相当频繁的,而且由于大量的档散布在各个分散的FTP主机中,查询起来非常不便,因此Alan Archie工作原理与现在的搜索引擎已经很接近,它依靠脚本程序自动
11、搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。当时,“机器人”一词在编程者中十分流行。计算机“机器人”(Computer Robot)是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此, 搜索引擎的“机器人”程序就被称为“蜘蛛”程序。世界上第一个用于监测互联网发展规模的“机器人”程序是Matthew Gray开发的World wide Web Wanderer。刚开始它只用来统计互联网上的服务器数量,后来则发展为能够检索网站域名。与Wanderer相对应,Martin Kosher于1993年
12、10月创建了ALIWEB,它是Archie的HTTP版本。ALIWEB不使用“机器人”程序,而是靠网站主动提交信息来建立 自己的链接索引,类似于现在我们熟知的Yahoo。随着互联网的迅速发展,使得检索所有新出现的网页变得越来越困难,因此,在Matthew Gray的Wanderer基础上,一些编程者将传统的“蜘蛛”程序工作原理作了些改进。直到一些编程者提出了这样的设想,既然所有网页都可能有连向其它网站的链接,那么从跟踪一个网站的链接开始,就有可能检索整个互联网。到1993年底,一些基于此原理的搜索引擎开始纷纷涌现,但是早期的搜索引擎只是以搜索工具在数据库中找到匹配信息的先后次序排列搜索结果,因
13、此毫无信息关联度可言。而RBSE是第一个在搜索结果排列中引入关键词串匹配程度概念的引擎。最早现代意义上的搜索引擎出现于1994年7月。当时Michael Mauldin将John Leavitt的蜘蛛程序接入到其索引程序中,创建了大家现在熟知的Lycos(2000年被西班牙网络集团Terra Lycos Network收购)。同年4月,斯坦福(Stanford)大学最为著名的两名博士生,美籍华人杨致远(Gerry Yang)和David Filo共同创办了Yahoo公司,并成功地使搜索引擎的概念深入人心。从此搜索引擎进入了高速发展时期。目前,互联网上有名有姓的搜索引擎已达数百家,其检索的信息量
14、也与从前不可同日而语。像国外的Google,国内的百度,这样的搜索引擎巨擘由于掌握的大多数的入口流量,成为互联网世界的霸主,并带来了巨大的商业价值。1.2 国内外技术发展现状因为搜索引擎的商业化应用带来了巨大的商业价值,所以作为搜索引擎的核心部分的网络爬虫技术,也理所应当的成为了国内外研究的热点。对于网络爬虫的研究从上世纪九十年代就开始了目前爬虫技术已经相当成熟。并催生了像Baidu和Google这样的网络巨擘,而其它公司也纷纷推出了自己的搜索引擎。网络爬虫是搜索引擎的重要组成部分。现今,网络爬虫主要分为通用爬虫和聚焦爬虫两类。通用搜索引擎的目标是尽可能大的网络覆盖率,通用搜索引擎大多提供基于
15、关键词的检索。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。同时,支持根据语义信息提出的查询。 网络爬虫的发展趋势随着AJAX/Web2.0等技术的流行,如何抓取AJAX等动态页面成了搜索引擎急需解决的问题,如果搜索引擎依旧采用“爬”的机制,是无法抓取到AJAX页面的有效数据的。除此之外,网络爬虫还主要面对着一下的这些问题(摘自百度百科5):1、强制
16、用Cookies。部分站长为了让用户记住登陆信息,强迫用户使用Cookies。如果未开启,则无法进行访问,访问页面显示的也不会正常,这种方式会让蜘蛛无法进行访问。2、登陆要求。有些企业站和个人站的设置一定要注册登陆后才能看到相关的文章内容,这种对蜘蛛不是很友好,蜘蛛不会注册、也不会登陆。3、动态URL。动态URL简单的说就是带有问号、等号及参数的网址就是动态URL,动态URL不利于搜索引擎蜘蛛的爬行和抓取。4、Flash。有的网站页面使用Flash视觉效果是很正常的,比如用Flash做的Logo、广告、图表等,这些对搜索引擎抓取和收录是没有问题的,很多网站的首页是一个大的Flash档,这种就叫
17、蜘蛛陷阱,在蜘蛛抓取时HTML代码中只是一个链接,并没有文字。虽然大的Flash效果看上去很好,外观看着也很漂亮,但可惜搜索引擎看不到,无法读取任何内容。 5、无休止的跳转。对搜索引擎来说只对301跳转相对来说比较友好,对其他形式的跳转都是比较敏感,例如:JavaScript跳转、Meta Refresh跳转、Flash跳转、302跳转。1.3 系统设计的意义本文通过JAVA语言实现一个基于广度优先偏历算法的多线程爬虫程序。通过实现此爬虫程序可以定点搜集某一站点的URLs,如果需要搜集其它信息,可以在解析URLs的同时,解析获取相应信息2 总体设计方案2.1 系统设计方案 本设计主要是通过在e
18、clipse软件环境中进行,设计过程中首先服务器端获得网页URL,URL的获得途径有从客户端获得的已经形成的URL,和解析网站获得的更新的URL两种途径,然后根据URL连接该网页,获取网页源代码,获取网页源代码中需要的网页内容,去除多余的标签,空格,最后形成XML文档,服务器端的还包含获得IP代理,因为反复解析同一个网站,网站的防火墙会让本地IP无法访问该网站,所以我们需要用到IP代理循环访问网站解决这个问题,服务器端还可以阅本地文件的模块,方便文件阅读的客户端主要是过滤本地的文档与服务器端进行信息交互,传送需要解析的URL,获得已经解析的网页源代码所形成的XML文档。2.2 系统设计框图 否
19、 是 否 是从文档中读取一个URL用代理访问URL链接所指的地址,打开网络连接获取网页源代码去处网页标签,空格等多余代码根据提取的信息,形成XML文档保存在固定文件夹中是否读到URL是否获完整源代码从文档中读取一个URL结束读取URL图 2.1.1网页解析部分流程图客户端发出连接请求服务端开启服务客户端发出请求,上传或者下载文档服务端接收客户端请求,链接构成文件开始传送客户端断开Socket链接文件传送结束,服务器处于监听状态选定文件夹,遍历该文件夹将获得的文件显示在第一个Table中选择对文件的操作打开,删除,添加到上传列表如果添加到上传列表,单机右键,选择操作,如开始上传 图 2.1.2
20、客户端文件遍历流程图 图2.1.3 服务器端与客户端通信流程图2.3 网络爬虫的相关技术2.3.1 URL统一资源定位符(URL,英语UniformResourceLocator的缩写)也被称为网页地址,是因特网上标准的资源的地址。它最初是由蒂姆伯纳斯李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。在因特网的历史上,统一资源定位符的发明是一个非常基础的步骤。统一资源定位符的语法是一般的,可扩展的,它使用ASCII代码的一部分来表示因特网的地址。一般统一资源定位符的开始标志着一个计算机网络所使用的网络协议。 统一资源定位符是统一资源标志符的一个下种。统一资源
21、标志符确定一个资源,而统一资源定位符不但确定一个资源,而且还表示出它在哪里。 URL结构一般分为两个部分,一个是物理结构,一个是逻辑结构。在物理结构包括扁平结构和树型结构。扁平结构就是网站中所有的页面都是在根目录这一级别,形成一个扁平的物理结构。这比较适合于小型的网站,因为如果太多文件都放在根目录下的话,制作和维护起来比较麻烦。而树型结构的意义是在一级目录下分为多个频道或者称之为目录,然后目录下面再放上属于这个频道的页面,首页、频道首页、频道下的内容就好比树干、树枝、树叶的关系。逻辑结构就是由网页内部链接所形成的逻辑的或链接的网络图。比较好的情况是逻辑结构与前面的树型物理结构相吻合。统一资源定
22、位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。 URL 的一般形式是::/:/网络爬虫就是通过提取和分析出网页中的URL地址,对相应网络进行爬取。2.3.2 HTTP协议超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 爬虫 设计 学位 学士 论文

链接地址:https://www.31ppt.com/p-4030676.html