在此次实验报告中将会分为五个部分进行单独分析,这五个部分分别是:爬虫、界面、文本搜索、图片搜索以及音频搜索。
一爬虫
1.1 库
requests
urllib
1.2 实现功能
能够通过requests.get获得网页上的内容,并使用json.loads进行解析
能够快速定位歌曲、专辑的信息,包括专辑名、歌手、歌词、专辑简介、发行时间、流派、发行公司等
能够从网页上下载歌曲和图片
1.3 实现过程
爬取QQ音乐网站的榜单,通过榜单下载歌曲
分析发现搜索各首歌曲的 url 地址中的区别在于其中的一段内容代表的是搜索输入的文字的编码,利用这一特性模拟搜索从榜单上爬取下来的歌曲
通过分析网页的 url 地址,发现每一首歌曲都有自己特定的”media_mid”属性,这个属性是各个歌曲的下载url地址唯一不同的地方。通过将该属性替换到url中的固定位置,可以完成歌曲、专辑、歌词定位
定位到歌曲、专辑、歌词、图片地址后完成文本的写入
1.4 难点
reques 取得 url 地址是搜索页面下的单曲一栏,然而这里面并没有歌词,故将搜索歌曲的页面从单曲切换到歌词
由于该页面中有大量中文字符,会出现json无法解析的编码,故使用正则表达式作类似处理
专辑信息只能通过歌曲的 js 代码中获得的 media_mid 属性定位后,再通过正则表达式来提取
二、界面
2.1 库
Wow.min.js
animate.css
jquery.min.js
2.2 实现的功能
2.2.1 翻页
由于文本搜索的结果较多,故使用javascript实现了分页的效果。设置最大显示量为20个结果,每页显示4个结果,共五页。 并实现了翻页、上一页、下一页的功能。
完整的源码和详细的文档,上传到了 WRITE-BUG技术共享平台 上,需要的请自取:
https://www.write-bug.com/article/2513.html