1学号密级_____________本科毕业论文基于音乐网站的过滤式网络爬虫的研究院(系)名称:专业名称:软件工程学生姓名:指导教师:二○一五年六月2BACHELOR'SDEGREETHESISOFWUHANUNIVERSITYResearchofthewebcrawlerbasedonmusicwebsite矚慫润厲钐瘗睞枥庑赖。ByJune20153郑重声明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。聞創沟燴鐺險爱氇谴净。本人签名:日期:2015.5.154摘要随着社会的进步与电脑的普及,网络逐渐取代了传统的信息平台,成为人们迅速获得和发布资讯的重要工具。在这一背景下,在线数字音乐服务因为其方便、快捷的特点受到大众的普遍欢迎。目前虽然数字音乐服务提供商众多,却同质化现象严重,跟不上部分用户的需求。互联网上的歌曲难以计数,然而用户想要找到自己喜欢的歌曲往往要花费大量的精力去搜索歌曲和浏览各种歌单。本文力求通过开发一个音乐网站,通过数据爬取与算法分析,使得人们找到自己喜欢的歌曲不再困难。该音乐网站采用B/S结构进行开发。使用python+tornado+mysql+redis搭建该网站系统。在软件工程相关规范的约束下,结合实际情况对系统进行开发。残骛楼諍锩瀨濟溆塹籟。本文首先介绍了目前市面上的音乐电台存在的问题,并且介绍开发环境及开发者运用到的关键技术。之后对网站系统的一些关键技术进行研究和实现。酽锕极額閉镇桧猪訣锥。关键词:音乐电台;网络电台;B/S结构5ABSTRACTAsoursocietydevelops,computerisbecomingmoreandmoreimportantinourdailylife,andInternetbecomesanimportantmediumforpeopletogettheinformationquickly.Inthiscontext,becauseonlinedigitalmusicserviceisconvenientandfast,itiswelcomedbythegeneralpublic.Althoughtherearemanydigitalmusicserviceproviders,buttheyfailedtomeetthedemandofsomeoftheusers.ThesongsontheInternetaredifficulttocount,however,thattheuserneedstospendalotofenergytosearchforsongsandbrowseallkindsofplaylistinordertofindsongstheyenjoy.Thisarticleseekstodevelopamusicwebsite,sothatuserscaneasilyfindtheirfavoritesongs.ThemusicwebsiteusesB/Sstructuretodevelop.Usepython+tornado+mysql+redistobuildthewebsitesystem.Thewholesystemdevelopmentprocessfollowedthesoftwareengineeringrelatedspecificationandtheactualsituation.彈贸摄尔霁毙攬砖卤庑。Thispaperfirstintroducestheexistingproblemsofthemusicwebsites,andthenintroducesthedevelopmentenvironmentandthekeytechnologywhichtheauthoruses.Thenwestudyandrealizesomekeytechnologiesofthewebsitesystem.謀荞抟箧飆鐸怼类蒋薔。Keywords:musicradio;Webcrawler;B/Sstructure6目录1绪论.....................................9厦礴恳蹒骈時盡继價骚。1.1论文的选题的目的和意义........................9茕桢广鳓鯡选块网羈泪。1.2国内外关于该论题的研究现状和发展趋势..........9鹅娅尽損鹌惨歷茏鴛賴。1.3论文主攻方向................................10籟丛妈羥为贍偾蛏练淨。1.4论文的主要内容..............................11預頌圣鉉儐歲龈讶骅籴。1.5论文的研究方法和技术路线....................11渗釤呛俨匀谔鱉调硯錦。2技术支持................................12铙誅卧泻噦圣骋贶頂廡。2.1python编程技术..............................12擁締凤袜备訊顎轮烂蔷。2.2json可拓展标记语言..........................12贓熱俣阃歲匱阊邺镓騷。2.3tornado.....................................12坛摶乡囂忏蒌鍥铃氈淚。2.4MySQL.......................................13蜡變黲癟報伥铉锚鈰赘。2.5Redis.......................................14買鲷鴯譖昙膚遙闫撷凄。2.6Nginx.......................................14綾镝鯛駕櫬鹕踪韦辚糴。2.7前端技术.....................................15驅踬髏彦浃绥譎饴憂锦。2.8MVC设计模式.................................16猫虿驢绘燈鮒诛髅貺庑。2.9网络爬虫....................................16锹籁饗迳琐筆襖鸥娅薔。2.9.1网络爬虫的分类..........................16構氽頑黉碩饨荠龈话骛。2.9.2网络爬虫常见搜索策略....................17輒峄陽檉簖疖網儂號泶。3音乐网站概要设计........................19尧侧閆繭絳闕绚勵蜆贅。3.1概述........................................19识饒鎂錕缢灩筧嚌俨淒。3.2需求分析.....................................19凍鈹鋨劳臘锴痫婦胫籴。3.2.1面向人群................................19恥諤銪灭萦欢煬鞏鹜錦。3.2.1功能性需求..............................19鯊腎鑰诎褳鉀沩懼統庫。3.2.1.1需求功能划分........................19硕癘鄴颃诌攆檸攜驤蔹。3.2.1.2功能描述............................20阌擻輳嬪諫迁择楨秘騖。3.2.2性能需求................................20氬嚕躑竄贸恳彈瀘颔澩。3.2.3运行环境需求.............................21釷鹆資贏車贖孙滅獅赘。73.3界面设计....................................21怂阐譜鯪迳導嘯畫長凉。3.3.1技术手段................................21谚辞調担鈧谄动禪泻類。3.3.2设计风格................................21嘰觐詿缧铴嗫偽純铪锩。3.3.3界面设计方案............................22熒绐譏钲鏌觶鷹緇機库。3.3.3.1界面框架设计........................22鶼渍螻偉阅劍鲰腎邏蘞。3.3.3.2启动封面设计........................22纣忧蔣氳頑莶驅藥悯骛。3.3.3.3按钮设计............................22颖刍莖蛺饽亿顿裊赔泷。3.3.3.4标签设计............................22濫驂膽閉驟羥闈詔寢賻。3.3.3.5图标设计............................23銚銻縵哜鳗鸿锓謎諏涼。3.4核心功能.....................................23挤貼綬电麥结鈺贖哓类。3.4.1数据爬取功能............................23赔荊紳谘侖驟辽輩袜錈。3.4.2歌曲推荐功能............................23塤礙籟馐决穩賽釙冊庫。4数据库设计..............................25裊樣祕廬廂颤谚鍘羋蔺。4.1用户信息表..................................25仓嫗盤紲嘱珑詁鍬齊驁。4.2用户收听记录表..............................25绽萬璉轆娛閬蛏鬮绾瀧。4.3用户推荐记录表..............................26骁顾燁鶚巯瀆蕪領鲡赙。5系统介绍................................27瑣钋濺暧惲锟缟馭篩凉。5.1网络爬虫的设计与实现........................27鎦诗涇艳损楼紲鯗餳類。5.1.1OAuth2.0协议..........................27栉缏歐锄棗鈕种鵑瑶锬。5.1.2last.fm所提供的api接口................28辔烨棟剛殓攬瑤丽阄应。5.1.3网络爬虫的需求分析......................29峴扬斕滾澗辐滠兴渙藺。5.1.4网络爬虫的结构与实现....................30詩叁撻訥烬忧毀厉鋨骜。5.1.4.1数据爬取模块........................30则鯤愜韋瘓賈晖园栋泷。5.1.4.2内容分析模块........................31胀鏝彈奥秘孫戶孪钇賻。5.1.4.3数据处理模块........................32鳃躋峽祷紉诵帮废掃減。5.1.4.4数据存储模块........................33稟虛嬪赈维哜妝扩踴粜。5.2功能模块的实现..............................34陽簍埡鲑罷規呜旧岿錟。5.2.1欢迎界面................................34沩氣嘮戇苌鑿鑿槠谔應。5.2.2登陆界面................................35钡嵐縣緱虜荣产涛團蔺。85.2.3注册界面................................35懨俠劑鈍触乐鹇烬觶騮。5.2.4授权界面................................36謾饱兗争詣繚鮐癞别瀘。5.2.5电台初始化界面..........................37呙铉們欤谦鸪饺竞荡赚。5.2.6音乐播放界面............................38莹谐龌蕲賞组靄绉嚴减。6总结与展望...................