前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单爬虫(一):实现百度音乐下载

简单爬虫(一):实现百度音乐下载

作者头像
云时之间
发布2018-04-11 09:43:27
9440
发布2018-04-11 09:43:27
举报
文章被收录于专栏:云时之间云时之间

现在我们听歌往往会集中在一个平台,但是往往很多歌曲只在一个平台独占,我们听自己几首想听的歌曲往往要在几个平台跳来跳去,正好现在在使用爬虫,在学着解析网页的时候,发现很多的音乐网站的音频往往都是用一个songid然后去follow这个url去下载,然后这时候便想使用爬虫去下载下,全程的代码也很简单,并且所有的音乐网站的思路基本一样,所以今天以百度音乐为例,写下这篇文章.(仅供个人使用!)

1:分析网页

我们在首页上随便的打开一首歌,音乐会自动播放,这时候我们会想,有那种机制可以让其自动播放?这时候我们试着去解析网页.Chrome我们按F12并刷新:

在开发者工具-network里边有Media这一栏,然后我们点进去,在header里边找到request url:

复制,在地址栏里访问:

你会发现当你复制之后,你的网页会自动给你下载音乐,是不是很神奇,并且所有的网站都是这样的一个套路,但是更重要的是我们要去让爬虫去自动下载,这时候我们就需要继续解析网页,看看他们是根据什么来下载音乐的:

经过一番苦苦的寻找之后,发现了一个好东西:

在这个ting开头的文件里,有一个jQuery,并且我们在其preview里点击发现,里边有一栏是file_link,这个地址和我们之前在media看到的一样:

这时候我们会不会想通过这个js网页去找到歌曲:

继续往下来看:

发现有一些信息,其中的title是歌曲的名字,其中的song_id其实就是这首歌曲的匹配项,这时候我们在ting文件的header里找到他的request url:

发现这是一个调用的api,根据歌曲的id去检索下载歌曲,那我们是不是可以通过搜索歌曲的id去实现歌曲的下载?

这时候我们去搜索,发现网站的格式其实是http://music.baidu.com/search?key=”你搜索的内容”,这时候解析网页:

发现歌曲的id都可以找得到,这时候我们就可以通过网页提取出id去实现批量下载,如果要高音质,就去在播放设置里更改下就可以!

代码如下:

示例:

搜索之后,可以实现下载,至于下多少,你自己想要多少就多少!

我上传了github上去:

https://github.com/yunshizhijian/music.git

也希望有会GUI的同学给美化下!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档