1、1学号 密级_本科毕业论文基于音乐网站的过滤式网络爬虫的研究院(系)名称:专业名称:软件工程学生姓名:指导教师:二一五年六月2BACHELORS DEGREE THESISOF WUHAN UNIVERSITYResearch of the web crawler based on music websiteByJune 20153郑重声明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明
2、。本学位论文的知识产权归属于培养单位。本人签名: 日期: 2015.5.15 4摘要随着社会的进步与电脑的普及,网络逐渐取代了传统的信息平台,成为人们迅速获得和发布资讯的重要工具。在这一背景下,在线数字音乐服务因为其方便、快捷的特点受到大众的普遍欢迎。目前虽然数字音乐服务提供商众多,却同质化现象严重,跟不上部分用户的需求。互联网上的歌曲难以计数,然而用户想要找到自己喜欢的歌曲往往要花费大量的精力去搜索歌曲和浏览各种歌单。本文力求通过开发一个音乐网站,通过数据爬取与算法分析,使得人们找到自己喜欢的歌曲不再困难。该音乐网站采用 B/S 结构进行开发。使用 python + tornado + my
3、sql +redis 搭建该网站系统。在软件工程相关规范的约束下,结合实际情况对系统进行开发。本文首先介绍了目前市面上的音乐电台存在的问题,并且介绍开发环境及开发者运用到的关键技术。之后对网站系统的一些关键技术进行研究和实现。关键词:音乐电台;网络电台;B/S 结构5ABSTRACTAs our society develops, computer is becoming more and more important in our daily life , and Internet becomes an important medium for people to get the infor
4、mation quickly. In this context , because online digital music service is convenient and fast, it is welcomed by the general public. Although there are many digital music service providers, but they failed to meet the demand of some of the users. The songs on the Internet are difficult to count, how
5、ever, that the user needs to spend a lot of energy to search for songs and browse all kinds of playlist in order to find songs they enjoy. This article seeks to develop a music website, so that users can easily find their favorite songs. The music website uses B/S structure to develop. Use python+to
6、rnado+mysql+redis to build the website system. The whole system development process followed the software engineering related specification and the actual situation.This paper first introduces the existing problems of the music websites, and then introduces the development environment and the key te
7、chnology which the author uses. Then we studyand realize some keytechnologies of the website system.Key words: music radio ;Web crawler ;B/S structure6目录1 绪论 .91.1 论文的选题的目的和意义 .91.2 国内外关于该论题的研究现状和发展趋势 .91.3 论文主攻方向 .101.4 论文的主要内容 .111.5 论文的研究方法和技术路线 .112 技术支持 .122.1 python 编程技术 .122.2 json 可拓展标记语言 .1
8、22.3 tornado .122.4 MySQL .132.5 Redis .142.6 Nginx .142.7 前端技术 .152.8 MVC 设计模式 .162.9 网络爬虫 .162.9.1 网络爬虫的分类 .162.9.2 网络爬虫常见搜索策略 .173 音乐网站概要设计 .193.1 概述 .193.2 需求分析 .193.2.1 面向人群 .193.2.1 功能性需求 .193.2.1.1 需求功能划分 .193.2.1.2 功能描述 .203.2.2 性能需求 .203.2.3 运行环境需求 .2173.3 界面设计 .213.3.1 技术手段 .213.3.2 设计风格 .
9、213.3.3 界面设计方案 .223.3.3.1 界面框架设计 .223.3.3.2 启动封面设计 .223.3.3.3 按钮设计 .223.3.3.4 标签设计 .223.3.3.5 图标设计 .223.4 核心功能 .233.4.1 数据爬取功能 .233.4.2 歌曲推荐功能 .234 数据库设计 .244.1 用户信息表 .244.2 用户收听记录表 .244.3 用户推荐记录表 .255 系统介绍 .265.1 网络爬虫的设计与实现 .265.1.1 OAuth 2.0 协议 .265.1.2 last.fm 所提供的 api 接口 .275.1.3 网络爬虫的需求分析 .285.
10、1.4 网络爬虫的结构与实现 .295.1.4.1 数据爬取模块 .295.1.4.2 内容分析模块 .295.1.4.3 数据处理模块 .315.1.4.4 数据存储模块 .315.2 功能模块的实现 .325.2.1 欢迎界面 .325.2.2 登陆界面 .3385.2.3 注册界面 .345.2.4 授权界面 .355.2.5 电台初始化界面 .355.2.6 音乐播放界面 .366 总结与展望 .386.1 总结 .386.2 展望 .38参考文献 .39致谢 .4191 绪论1.1 论文的选题的目的和意义随着社会的进步与电脑的普及,互联网成为人们快速获取传递信息的重要媒介。在这一背景
11、下,在线数字音乐服务因为其方便、快捷的特点受到大众的普遍欢迎。目前虽然数字音乐服务提供商众多,却同质化现象严重,跟不上部分用户的需求。互联网上的歌曲难以计数,然而用户想要找到自己喜欢的歌曲往往要花费大量的精力去搜索歌曲和浏览各种歌单。例如豆瓣 FM 需要用户花费大量的时间来调试电台,让电台学习用户独特的口味;世面上已经有根据情绪来推荐歌曲的应用,比如 jing.fm 和百度音乐,但是他们推荐的音乐和用户的喜好并没有关联,推荐的只是比较流行的音乐;另外诸如酷狗音乐,QQ 音乐这些大型音乐收听平台,虽然乐库庞大,但是对音乐的分类粗糙,用户想要找到自己喜爱的音乐往往如同大海捞针一般艰难。对于一些喜欢
12、花费时间享受音乐的用户而言,把时间浪费到自己并不感兴趣的曲目上会大大减小音乐带来的乐趣。本音乐电台能根据用户自己的音乐喜好,来推荐相应的情绪音乐;音乐电台能够在知晓用户的音乐口味下,播放用户曾经喜欢的歌曲以及推荐用户有可能感兴趣的歌曲。用户同时可选择相应的情绪来收听情绪电台。本电台通过 api 爬取用户在 last.fm 上大量的收听记录,对用户的音乐口味更为准确,且几乎无需花费时间来学习用户口味;用户可以选择相应的情绪电台.1.2 国内外关于该论题的研究现状和发展趋势在欧美社会,数字音乐已经发展地相当成熟。因为互联网的普及极大地降低了数据流动的成本,以及音乐这种媒介非常容易被数字化的特征,音
13、乐数据在互联网上被快速广泛得传播是必然的事情,相对于从传统的唱片店里购买 CD,通过互联网搜索和下载音乐更加的快捷、经济和方便。目前在数字音乐领域,国外占主导地位的有以 iTunes 为代表的音乐搜索与下载模式,以潘多拉网络电台为代表的歌曲分类与个性推荐模式,和以 last.fm 为代表的社交音乐推荐模式。iTunes 乐库丰富,用户通过搜索可以轻易地下载自己喜欢的歌曲,通过歌曲榜10单和歌曲分类,用户可以探索自己可能感兴趣的音乐。潘多拉网络电台颠覆了以往的音乐电台模式,具体地讲这个电台其实就是一个针对用户高度定制的个性化电台。通过用户对所播放歌曲的反馈行为(喜爱或者讨厌)以及歌曲本身的一些属
14、性,找到与之风格相似的的音乐,推荐给用户。与传统播放器不同的是,潘多拉网络电台没有音乐播放列表,用户无法选定下一首歌曲,这样一来用户可以专注于音乐本身,从而提供一种连续的音乐体验。Last.fm 的用户交互与潘多拉网络电台比较相似,不同的是为用户推荐歌曲的算法有所不同。潘多拉网络电台中每首音乐都有对应的风格、情绪等一系列属性,电台通过这些属性来推荐可能符合用户口味的歌曲。Last.fm 的设计思想则是,如果两个用户同时喜欢同一首歌曲或者相同的几首歌曲,那么用户 A 喜欢听的其它歌曲中有很大几率也符合用户 B 的口味,从而针对性的进行歌曲的推荐。目前,国内的音乐网站也如雨后春笋般层出不穷,老牌的
15、音乐网站有酷狗音乐、QQ 音乐等;还有对国外音乐网站的借鉴产品,例如豆瓣 fm、虾米音乐等;在智能机日益普及的今天,也涌现出一大批移动端的音乐应用,例如天天动听,多米音乐等。但是目前国内音乐网站缺乏原创性以及对版权的保护,大多数只是对国外同类网站的简单模仿。对于用户而言,很难满足一些个性化的需求,通常一个用户要找到一首符合自己口味的歌曲会花费大量的时间,难以体会到音乐带给人的愉悦和心灵上的享受。此外,国内音乐网站同质化趋势严重,各大音乐网站没有自己的特色,仅仅在外观设计上有所区别,而内容模块基本上大同小异,千篇一律的都是一些“推荐歌曲”,“音乐榜单”,“推荐歌单”,“分类乐库”等内容,久而久之使得用户产生审美疲劳。在中国已成为世界网民最多国家的今天,数字音乐在我国有着巨大的发展空间。我们不应该仅仅满足于对国外技术的模仿,更应该自主创新,才能抓住这一巨大市场,在业内竞争中取得优势地位。1.3 论文主攻方向本论文所研究的主要内容是设计能够为用户提供个性化歌曲的音乐电台,对电台界面进行设计,开发针对 Last.fm 个人网站的网络爬虫,并提高网络爬虫的性能。