仿酷狗的音乐搜索软件的开发与测试.DOC

上传人:国*** 文档编号:1007418 上传时间:2018-11-15 格式:DOC 页数:19 大小:1.41MB
下载 相关 举报
仿酷狗的音乐搜索软件的开发与测试.DOC_第1页
第1页 / 共19页
仿酷狗的音乐搜索软件的开发与测试.DOC_第2页
第2页 / 共19页
仿酷狗的音乐搜索软件的开发与测试.DOC_第3页
第3页 / 共19页
仿酷狗的音乐搜索软件的开发与测试.DOC_第4页
第4页 / 共19页
仿酷狗的音乐搜索软件的开发与测试.DOC_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、 591 论文网 www.591LW.com仿酷狗的音乐搜索软件的开发与测试摘 要当前,面对浩瀚的网络资源,搜索引擎为所有网上冲浪的用户提供了一个入口,毫不夸张的说,所有的用户都可以借助于搜索引擎到达自己想去的网上任何一个地方。因此它也成为除了电子邮件以外人们使用最多的网上服务。随着 Internet 的快速发展,海量信息和人们获取所需信息能力之间的矛盾日益明显,在信息海洋里查找信息,如同大海捞针一样,搜索引擎恰好解决了这一难题。Web 音乐搜索软件是采用 Java 语言开发的简易的互联网音乐搜索引擎,它是集网络爬虫( 采用 java 内置的多线程及 Socket 技术)和基于 B/S 结构的

2、 Web 查询(Struts 框架 )为一体的搜索软件。该系统能完成对互联网的音乐信息的采集、分析、分类、保存和查询等功能;经过测试与分析,说明本系统运行稳定、可靠,具有一定的实用价值。关键字:音乐;搜索软件;网络爬虫;Socket 技术;Struts 框架;多线程591 论文网 www.591LW.comDesign and Implementation of Web Music Search SoftwareAbstractAt present, in the vast network resource, search engine for all Internet surfing use

3、rs provides the one entrance. No exaggeration to say that all users can be reached any one place on the Internet by the aid of search engines. So it has become the most using online services for people except E-mail. However, with the rapid development of the Internet, the contradictions between mas

4、sive information and obtaining the capacity of required information is obvious day by day. Searching for information in vast network resources is like looking for needles in a haystack, but search engine just solves this problem. The software is about web music search. It uses java to develop a simp

5、le Internet music search engine, and also gathers the net-reptile (intra-builder java multi-thread and socket technology) and web search based on B/S construction (struts framework) as a whole search software. It can achieve the collection, analysis, classification, storage and search of Internet mu

6、sic information. Through the test and analysis, it shows this system is stable, reliable, and has some practical values.Key words: Music; Search Software; Crawl; Socket Technology; Struts Structure; Multi-thread591 论文网 www.591LW.com1目 录论文总页数:21 页1 引 言 .11.1 课题背景 .11.2 国内外研究现状 .11.3 本课题研究的意义 .21.4 本文

7、的主要工作 .22 Web 音乐搜索软件 的需求分析 .22.1 搜集信息 .22.2 整理信息 .22.3 接受查询 .33 Web 音乐搜索软件的设计 .33.1 系统总体流程 .33.2 系统部件介绍 .44 Web 音乐搜索软件的具体实现 .54.1 数据设计 .54.2 网络爬虫设计 .54.2.1 遍历算法 .64.2.2 模拟浏览器 .84.2.3 正则表达式 .94.2.4 数据分析 .124.3 采用 java 多线程技术 .134.4 web 查询端 .144.4.1 Struts 框架 .144.4.2 Struts 包内容 .144.4.3 Struts 体系结构 .1

8、55 运行测试与分析 .175.1 软件试运行 .175.2 软件分析 .19结 论 .19参考文献 .19致 谢 .20声 明 .21591 论文网 www.591LW.com第 1 页 共 21 页1 引 言1.1 课题背景面对浩瀚的网络资源,搜索引擎为所有网上冲浪的用户提供了一个入口,毫不夸张的说,所有的用户都可以从搜索出发到达自己想去的网上任何一个地方。因此它也成为除了电子邮件以外最多人使用的网上服务。随着因特网的迅猛发展、WEB 信息的增加,用户要在信息海洋里查找信息,就如同大海捞针一样,搜索引擎恰好解决了这一难题(它可以为用户提供信息检索服务) 。但是随着 Internet 的发展

9、,搜索引擎也面临着海量信息和人们获取所需信息能力的矛盾。因此,信息的高效搜索显得格外重要。1.2 国内外研究现状搜索引擎技术伴随着 WWW 的发展是引人注目的。搜索引擎大约经历了三代的更新发展:第一代搜索引擎出现于 1994 年。这类搜索引擎一般都索引少于1,000,000 个网页,极少重新搜集网页并去刷新索引。而且其检索速度非常慢,一般都要等待 10 秒甚至更长的时间。在实现技术上也基本沿用较为成熟的IR(Information Retrieval) 、网络、数据库等技术,相当于利用一些已有技术实现的一个 WWW 上的应用。在 1994 年 3 月到 4 月,网络爬虫 World Web W

10、orm (WWWW)平均每天承受大约 1500 次查询。大约在 1996 年出现的第二代搜索引擎系统大多采用分布式方案(多个微型计算机协同工作)来提高数据规模、响应速度和用户数量,它们一般都保持一个大约 50,000,000 网页的索引数据库,每天能够响应 10,000,000 次用户检索请求。1997 年 11 月,当时最先进的几个搜索引擎号称能建立从2,000,000 到 100,000,000 的网页索引。Altavista 搜索引擎声称他们每天大概要承受 20,000,000 次查询。2000 年搜索引擎 2000 年大会上,按照 Google 公司总裁 Larry Page 的演讲,

11、Google 正在用 3,000 台运行 Linux 系统的个人电脑在搜集 Web 上的网页,而且以每天 30 台的速度向这个微机集群里添加电脑,以保持与网络的发展相同步。每台微机运行多个爬虫程序搜集网页的峰值速度是每秒 100 个网页,平均速度是每秒 48.5 个网页,一天可以搜集超过 4,000,000 网页。搜索引擎一词在国内外因特网领域被广泛使用,然而他的含义却不尽相同。在美国搜索引擎通常指的是基于因特网的搜索引擎,他们通过网络机器人程序收集上千万到几亿个网页,并且每一个词都被搜索引擎索引,也就是我们说的591 论文网 www.591LW.com第 2 页 共 21 页全文检索。著名的

12、因特网搜索引擎包括 First Search、Google、HotBot 等。在中国,搜索引擎通常指基于网站目录的搜索服务或是特定网站的搜索服务,本人这里研究的是基于因特网的搜索技术。1.3 本课题研究的意义搜索引擎自动从英特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。英特网上的信息浩瀚万千,而且毫无秩序,所有的信息像汪洋上的一个个“小岛” ,网页链接是这些“小岛”之间纵横交错的桥梁,而搜索引擎,则为你绘制一幅一目了然的信息地图,供你随时查阅。搜索技术的意义在此。1.4 本文的主要工作搜索引擎是根据用户的查询请求,查找信息返回给用户。为了保证用户查找信息的精度和新鲜度,搜索引擎需要

13、建立并维护一个庞大的索引数据库。一般的搜索引擎由网络爬虫程序、数据分析,查询数据等部分组成。本文的各章分配是这样安排的:第一章介绍系统的开发背景;第二章介绍系统的需求分析;第三章介绍系统的总体结构;第四章介绍系统的详细设计;第五章测试与运行本系统;最后是全文的总结。2 Web 音乐搜索软件的需求分析随着因特网的迅猛发展、WEB 信息的增加,用户要在信息海洋里查找信息,就像大海捞针一样,搜索引擎恰好解决了这一难题(它可以为用户提供信息检索服务) 。但是随着 Internet 的发展,搜索引擎也面临着海量信息和人们获取所需信息能力的矛盾。一个好的搜索引擎不再仅凭借数据库大小、更新频率、检索速度、对

14、多语言的支持这几个基本特性来衡量,如何从庞大的资料库中精确地找到正确的资料,被公认为是下一代搜索技术的竞争要点,智能化、个性化特色的新型引擎成为未来搜索引擎的发展趋势。搜索引擎需要实现互联网信息的快速查询,要实现以下功能。2.1 搜集信息搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛(spider)的自动搜索机器人程序来连上每一个网页上的超连结。机器人程序根据网页链到其它网页中的超链接,就像日常生活中所说的“一传十,十传百”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超链接器人便可以遍历绝大部分网页。 2.2 整理信息搜索引擎整理信息的过程称

15、为“建立索引” 。搜索引擎不仅要保存搜集起来591 论文网 www.591LW.com第 3 页 共 21 页的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。 2.3 接受查询用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回

16、主要是以网页链接的形式提供的,这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息,以帮助用户判断此网页是否含有自己需要的内容。3 Web 音乐搜索软件的设计根据上一章需求分析的情况,结合本软件所要需实现的功能,进行设计。本章主要介绍该软件的设计流程及步骤。3.1 系统总体流程图 3.1 系统结构图 3.1 是本系统结构图,该系统分两大模块:数据获取模块和用户查询模块所示首先通过网络爬虫从 Internet 上获取信息(模拟浏览器和遍历算法 )保存在591 论文网 www.591LW.com第 4 页 共 21 页爬虫(crawl)的

17、缓存中进行分析如果存在音乐连接得出音乐的名字和 url,然后调用 javabean 进行把得到的数据写入数据库,客户端过浏览器访问 TOMCAT(java web 中间件)对数据进行查询,得到用户查询结果。3.2 系统部件介绍 (1)网络爬虫网络爬虫(crawl),是一个功能很强的 WEB 扫描程序。它可以在扫描 WEB页面的同时检索其内的超链接并加入扫描队列等待以后扫描。因为 WEB 中广泛使用超链接,所以一个 crawl 程序理论上可以访问整个 WEB 页面。为了保证网络机器人遍历信息的广度和深度需要设定一些重要的链接并制定相关的扫描策略。(2)搜索网络机器人将遍历得到的页面存放在系统缓存

18、中,为了提高检索效率,用正则表达式对得到的文本数据进行分析,分析出 music 的超链接和名字并保存到mysql 数据库内方便查找而且执行效率很高。用户输入搜索条件后搜索程序将通过数据库进行检索然后把符合查询要求的数据库按照一定的策略进行分级排列并且返回给用户。(3)基于 Struts 框架的 client 端Struts 是一个基于 Sun J2EE 平台的 MVC 框架,主要是采用 Servlet 和 JSP技术来实现的。由于 Struts 能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts 把 Servlet、JSP、自定义标签和信息资源(message

19、resources)整合到一个统一的框架中。 (4)Tomcat 的 Web 服务器Web 服务器是在网络中为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器。Web 服务器如何工作:在 Web 页面处理中大致可分为三个步骤:第一步,Web 浏览器向一个特定的服务器发出 Web 页面请求;第二步,Web 服务器接收到 Web 页面请求后,寻找所请求的 Web 页面,并将所请求的 Web 页面传送给 Web 浏览器;第三步,Web 服务器接收到所请求的 Web 页面,并将它显示出来。Tomcat 是一个开放源代码、运行 servlet 和 JSP Web 应用软件的基于 Java的

20、 Web 应用软件容器。Tomcat 由 Apache-Jakarta 子项目支持并由来自开放性源代码 Java 社区的志愿者进行维护。 Tomcat Server 是根据 servlet 和 JSP 规范进行执行的,因此我们就可以说 Tomcat Server 也实行了 Apache-Jakarta 规范且比绝大多数商业应用软件服务器要好。591 论文网 www.591LW.com第 5 页 共 21 页(5)mysql 的关系型数据库MySQL 是最受欢迎的开源 SQL 数据库管理系统,它由 MySQL AB 开发、发布和支持。MySQL AB 是一家基于 MySQL 开发人员的商业公司,

21、它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL 是 MySQL AB 的注册商标。MySQL 是一个快速的、多线程、多用户和健壮的 SQL 数据库服务器。MySQL 服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL 网站(http:/) 提供了关于 MySQL 和 MySQL AB 的最新的消息。4 Web 音乐搜索软件的具体实现4.1 数据设计本系统的开发采用 mysql 数据库,它提供强大的数据查询功能,能快速的查找出用户需要的信息。(1)数据库名:musicexplorer(2)表

22、 mappingmusic(主要用音乐 url 和音乐名字的映射)(3)表结构,如图 4.1 所示。图 4.1 数据库结构在图 4.1 中,各字段名的含义如下: m_name,音乐名称; m_url,音乐的 url 地址; m_type,音乐的类型; m_date,采集音乐的时间。4.2 网络爬虫设计网络爬虫的主要功能是对互联网上的网页进行抓取,对网页进行分析提取出音乐数据方便以后的查询.其功能主要体现在对网页的遍历,和正则比对分析提取出 web 音乐信息。输入一个入口网址,和采集的网页数量网络爬虫程序将自动遍历网站信息591 论文网 www.591LW.com第 6 页 共 21 页保存到关

23、系数据库中,方便快速查询在爬虫的状态栏目显示当前正分析的网页信息。在爬虫的文本框里显示已经分析采集到的音乐名称。4.2.1 遍历算法crawl 程序发现超连接后并不调用自己本身而是把超连接加入到等待队列中。当 crawl 程序扫描完当前页面后会根据制定的策略访问队列中的下一个超连接地址。主要通过 crawl.java 类来实现。虽然这里只描述了一个队列,但在实际编程中用到了二个队列,每个队列都保存着同一处理状态的 URL。(1)等待队列:在这个队列中,URL 等待被 crawl 程序处理。新发现的URL 也被加入到这个队列中处理队列 当 crawl 程序开始处理时,他们被送到这个队列中错误队列

24、如果在解析网页时出错,URL 将被送到这里。该队列中的URL 不能被移入其他队列中。(2)完成队列:如果解析网页没有出错,URL 将被送到这里。该队列中的 URL 不能被移入其它队列中在同一时间 URL 只能在一个队列中,我们把它称为 URL 的状态。在这个过程中,当一个 URL 被加入到等待队列中时 crawl 程序就会开始运行。只要等待队列中有一个网页或 crawl 程序正在处理一个网页,程序就会继续他的工作。当等待队列为空并且当前没有任何网页时,crawl 程序就会停止它的工作。遍历算法源程序如下所示:public void crawlx(String startUrl, int max

25、Urls) throws Exception String dispalystr=“;mp3 m=null;int n=0;String date=null;da=new Database();HashSet crawledList = new HashSet();LinkedHashSet toCrawlList = new LinkedHashSet();Search sea=null;Analyzer ana=null;toCrawlList.add(startUrl);SimpleDateFormat setDateFormat = new SimpleDateFormat(“yyyy

26、/MM/dd kk:mm:ss“);591 论文网 www.591LW.com第 7 页 共 21 页date=setDateFormat.format(Calendar.getInstance().getTime();while (toCrawlList.size() 0) if (maxUrls != -1) if (crawledList.size() = maxUrls) break;/ Get URL at bottom of the list.String url = (String) toCrawlList.iterator().next();/ Remove URL from

27、the to crawl list.toCrawlList.remove(url);/ 增加已处理的 URL 到 crawledListcrawledList.add(url);if(hasBeenVisit(url)System.out.println(“重复:“+url+“已经去掉“);elseaddchain.add(url);sea=new Search(url);String pageContents =sea.getMessage(); /downloadPage(verifiedUrl);if (pageContents != null ArrayList links =ana.

28、linkAnalyzer();/retrieveLinks(verifiedUrl, pageContents, crawledList,limitHost)List mp3link= ana.mp3analyzer();toCrawlList.addAll(links);for(Iterator its=mp3link.iterator();its.hasNext();)m= (mp3)its.next();String sql=“INSERT INTO mappingmusic ( m_url , m_name , m_type,m_date )VALUES (“+m.getUrl()+“, “+m.getName()+“, “+m.getType()+“,“+date+“)“;da.executeInsert(sql);dispalystr+=“名字:“+m.getName()+“n“+“类型:“+m.getType()+“n“+“地址:“+m.getUrl()+“n“;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。