基于广度优先算法的多线程网络爬虫.doc
《基于广度优先算法的多线程网络爬虫.doc》由会员分享,可在线阅读,更多相关《基于广度优先算法的多线程网络爬虫.doc(71页珍藏版)》请在咨信网上搜索。
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 app
3、lication , 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 f
4、or 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 the
5、ory 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 collect
6、or, 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-t
7、hread; 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 programmingII沈阳理工大学学士学位论文 目录1 绪论11.1 网络爬虫的发展11.2 国内外技术发展现状21.3 系统设计的意义32 总体设计方案42.1 系统设计方案42.2 系统设计框图42.3 网络爬虫的相关技术52.
8、3.1 URL52.3.2 HTTP协议62.3.3 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 汉语翻译6
9、2附录C 程序代码66681 绪论1.1 网络爬虫的发展在互联网发展的早期,网站数量相对较少,信息数据量不大,查找也比较容易。然而伴随互联网井喷性的发展,普通网络用户想找到自己所需的数据简直如同在数据的海洋里捞针,为满足大众信息检索需求的专业搜索网站便应运而生了。所有搜索引擎的鼻祖,是1990年由Montreal的McGill University三名学生(Alan Emtage、Peter Deutsch、Bill Wheelan)发明的Archie(Archie FAQ)。Alan Emtage等想到了开发一个可以用文件名查找文件的系统,于是便有了Archie。Archie是第一个自动索引
10、互联网上匿名FTP网站文件的程序,但它还不是真正的搜索引擎。Archie是一个可搜索的FTP文件名列表,用户必须输入精确的文件名搜索,然后Archie会告诉用户哪一个FTP地址可以下载该文件。由于Archie深受欢迎,受其启发,Nevada System Computing Services大学于1993年开发了一个Gopher(Gopher FAQ)搜索工具Veronica(Veronica FAQ)。Jug head是后来另一个Gopher搜索工具。虽然当时万维网还未出现,但网络中档传输还是相当频繁的,而且由于大量的档散布在各个分散的FTP主机中,查询起来非常不便,因此Alan Archi
11、e工作原理与现在的搜索引擎已经很接近,它依靠脚本程序自动搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。当时,“机器人”一词在编程者中十分流行。计算机“机器人”(Computer Robot)是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此, 搜索引擎的“机器人”程序就被称为“蜘蛛”程序。世界上第一个用于监测互联网发展规模的“机器人”程序是Matthew Gray开发的World wide Web Wanderer。刚开始它只用来统计互联网上的服务器数量,后来则发展为能够检索网站域名。与Wan
12、derer相对应,Martin Kosher于1993年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页面的有效数据的。除此之外,网络爬
16、虫还主要面对着一下的这些问题(摘自百度百科5):1、强制用Cookies。部分站长为了让用户记住登陆信息,强迫用户使用Cookies。如果未开启,则无法进行访问,访问页面显示的也不会正常,这种方式会让蜘蛛无法进行访问。2、登陆要求。有些企业站和个人站的设置一定要注册登陆后才能看到相关的文章内容,这种对蜘蛛不是很友好,蜘蛛不会注册、也不会登陆。3、动态URL。动态URL简单的说就是带有问号、等号及参数的网址就是动态URL,动态URL不利于搜索引擎蜘蛛的爬行和抓取。4、Flash。有的网站页面使用Flash视觉效果是很正常的,比如用Flash做的Logo、广告、图表等,这些对搜索引擎抓取和收录是没
17、有问题的,很多网站的首页是一个大的Flash档,这种就叫蜘蛛陷阱,在蜘蛛抓取时HTML代码中只是一个链接,并没有文字。虽然大的Flash效果看上去很好,外观看着也很漂亮,但可惜搜索引擎看不到,无法读取任何内容。 5、无休止的跳转。对搜索引擎来说只对301跳转相对来说比较友好,对其他形式的跳转都是比较敏感,例如:JavaScript跳转、Meta Refresh跳转、Flash跳转、302跳转。1.3 系统设计的意义本文通过JAVA语言实现一个基于广度优先偏历算法的多线程爬虫程序。通过实现此爬虫程序可以定点搜集某一站点的URLs,如果需要搜集其它信息,可以在解析URLs的同时,解析获取相应信息2
18、 总体设计方案2.1 系统设计方案 本设计主要是通过在eclipse软件环境中进行,设计过程中首先服务器端获得网页URL,URL的获得途径有从客户端获得的已经形成的URL,和解析网站获得的更新的URL两种途径,然后根据URL连接该网页,获取网页源代码,获取网页源代码中需要的网页内容,去除多余的标签,空格,最后形成XML文档,服务器端的还包含获得IP代理,因为反复解析同一个网站,网站的防火墙会让本地IP无法访问该网站,所以我们需要用到IP代理循环访问网站解决这个问题,服务器端还可以阅本地文件的模块,方便文件阅读的客户端主要是过滤本地的文档与服务器端进行信息交互,传送需要解析的URL,获得已经解析
19、的网页源代码所形成的XML文档。2.2 系统设计框图 否 是 否 是从文档中读取一个URL用代理访问URL链接所指的地址,打开网络连接获取网页源代码去处网页标签,空格等多余代码根据提取的信息,形成XML文档保存在固定文件夹中是否读到URL是否获完整源代码从文档中读取一个URL结束读取URL图 2.1.1网页解析部分流程图客户端发出连接请求服务端开启服务客户端发出请求,上传或者下载文档服务端接收客户端请求,链接构成文件开始传送客户端断开Socket链接文件传送结束,服务器处于监听状态选定文件夹,遍历该文件夹将获得的文件显示在第一个Table中选择对文件的操作打开,删除,添加到上传列表如果添加到上
20、传列表,单机右键,选择操作,如开始上传 图 2.1.2 客户端文件遍历流程图 图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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 广度 优先 算法 多线程 网络 爬虫
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。