歌曲音乐爬虫编写

音乐爬虫(关于批量爬取歌曲的可播放地址)


AS A Start

  • 这是我自己第一次写博客,现在处在在大四开始的阶段,对自己需要做的事情有很多的不确定和迷茫,加上自己大三暑假在实验室有真正意义上接触一些项目课题(虽然最后也没有进那个组),但是真的也会学到了很多(这里还是要提一下,只有在自己真正把书本上的东西带入使用中,可能觉得才是真正意义上地进入了计算机这个专业吧),写博客的原因也是想对自己做的东西做一个整理,想在自言自语中总结自己的摸索过程,在选择博客上,一开始是想用hexo+github搭建个人博客,看了几个别人的个人博客,风格的确是很吸引人,但是搭了一下午也没在linux上搭建成功(应该是nodejs和npm管理版本的不匹配问题),所以也是先在****上编写,等到后面有时间再继续搭建。
  • -

环境搭建

这篇主要讲的是一个比较简单的爬虫脚本,其实在写这份代码之前我因为研究课题的原因做了半个月的微博爬虫,所以写起来也是比较快。用于我的数据库小学期的数据源,小学期的课程作业是搭建一个B/S结构的数据库管理系统,我们组想要做的是一个类似于酷狗音乐之类的音乐播放网站(包括个性推荐和个人搜索播放等),首先就是得建立歌曲的数据库,一开始的想法也是下载歌曲放在文件系统的某一个目录下,用路径作为歌曲播放标识,但是在做爬虫下载时发现现在的音乐网站(包括网易云等)都是需要下载客户端才可以下载歌曲的,这个时候在分析抓取的网页标签时发现了每个歌曲的标签下带着纯播放地址,这样就想到了直接用audio标签链接源音乐播放地址,这样也不需要下载歌曲占用存储空间,一举两得。

这里我们需要的是python3 + webdriver(google)

程序说明

代码见git —— [ musicSpider ]
针对性爬取的是搜狗音乐网站内的音乐。

代码中用的是selenium测试框架对音乐列表进行翻页爬取(因为爬取的页面不是静态的),之前接触selenium是在微博中的图形验证码识别接触,详细会在我下一篇微博爬虫中说明(目前还没写),这里我主要根据风格进行爬取,所以在数据库中的每首歌都有自己的音乐标签。

在数据库中展示如下:
歌曲音乐爬虫编写

可以在代码中定数据量(详见源码),我最后爬了1w多条用于课程作业使用。