QQ音乐还是有不少的好音乐,有些时候想要下载好听的音乐,如果在网页下载都是还需要登录什么的。于是,来了个QQmusic的爬虫。至少我觉得for循环爬虫,最核心的应该就是找到待爬元素所在url吧。

参考几个中间url:

#url1:https://c.y.qq.com/soso/fcgi-bin/client_search_cp?&lossless=0&flag_qc=0&p=1&n=20&w=雨蝶

#url2:https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?&jsonpCallback=MusicJsonCallback&cid=205361747&[songmid]&C400+songmid+.m4a&guid=6612300644

#vkey代替该music特有的字符串#url3:http://dl.stream.qqmusic.qq.com/[filename]?vkey=[vkey]

requests(url1):由搜索列表得到每个音乐的的songmid和mid(通过笔者观察,这两个值是每一个music特有的)。有了这两个值。下面就得到了完整的url2的具体值。

requests(url2):得到搜索结果中每个music的vkey值,经过笔者观察,filename即为C400songmid.m4a。进而确定了url3的具体值。而url3即为音乐的真实url,每次最多返回20首music的url,有了url,那Tencent的music就可以尽情的享受了。

下面代码是参考的网上的代码:

importrequestsimporturllibimportjson

word= '雨蝶'res1= requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w='+word)

jm1= json.loads(res1.text.strip('callback()[]'))

jm1= jm1['data']['song']['list']

mids=[]

songmids=[]

srcs=[]

songnames=[]

singers=[]for j injm1:try:

mids.append(j['media_mid'])

songmids.append(j['songmid'])

songnames.append(j['songname'])

singers.append(j['singer'][0]['name'])except:print('wrong')for n inrange(0,len(mids)):

res2= requests.get('https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?&jsonpCallback=MusicJsonCallback&cid=205361747&songmid='+songmids[n]+'&filename=C400'+mids[n]+'.m4a&guid=6612300644')

jm2=json.loads(res2.text)

vkey= jm2['data']['items'][0]['vkey']

srcs.append('http://dl.stream.qqmusic.qq.com/C400'+mids[n]+'.m4a?vkey='+vkey+'&guid=6612300644&uin=0&fromtag=66')

有了上面的这段代码,下载自然不成问题。当然获取歌手以及歌名也是可以把src复制到浏览器下载。也可以用大Python批量下载,无非就是一个循环,跟我们前面下载sogou图片方法类似:

print('For'+word+'Start download...')

x=len(srcs)for m inrange(0,x):print(str(m)+'*****'+songnames[m]+'-'+singers[m]+'.m4a *****'+'Downloading...')try:

urllib.request.urlretrieve(srcs[m],'d:/music/'+songnames[m]+'-'+singers[m]+'.m4a')except:

x= x - 1

print('Download wrong~')print('For ['+word+'] Download complete'+str(x)+'files !')

以上两段代码,写在同一py文件,运行即可下载对应关键词的music

运行代码,开始下载:

查看下载目录:

我们看到music已经成功下载,这就是Python爬取QQ音乐url及批量下载的简单实现思路。

python爬取qq音乐周杰伦_Python爬取QQ音乐url及批量下载相关推荐

  1. python爬取qq音乐周杰伦_Python爬取20万条评论,告诉你周杰伦为啥弄崩QQ音乐?

    作者 | 哈哈浩 责编 | 伍杏玲 9 月 16 日晚间,周董在朋友圈发布了最新单曲<说好不哭>. 发布后,真的让一波人哭了,一群想抢鲜听的小伙伴直接泪奔. 因为 QQ 音乐直接被搞崩了! ...

  2. python爬微信公众号视频_python爬虫公众号所有信息,并批量下载公众号视频

    之前写过一篇类似的文章:python爬取公众号,用最简单的方式爬虫 还有同学一直在问,可能中间有一些小细节不明确,这次彻底明确一下细节. 本篇添加一个批量下载公众号内视频的功能,可以实现完全复制一个公 ...

  3. Python爬取QQ音乐url及批量下载

    QQ音乐还是有不少的好音乐,有些时候想要下载好听的音乐,如果在网页下载都是还需要登录什么的.于是,来了个QQmusic的爬虫.至少我觉得for循环爬虫,最核心的应该就是找到待爬元素所在url吧. 参考 ...

  4. Python 爬取qqmusic音乐url并批量下载

    转自:https://www.cnblogs.com/dearvee/p/6602677.html 实测,可行. qqmusic上的音乐还是不少的,有些时候想要下载好听的音乐,但有每次在网页下载都是烦 ...

  5. python爬取公众号推荐_python爬搜狗微信获取指定微信公众号的文章

    前言: 之前收藏了一个叫微信公众号的文章爬取,里面用到的模块不错.然而 偏偏报错= =.果断自己写了一个 正文: 第一步爬取搜狗微信搜到的公众号: http://weixin.sogou.com/we ...

  6. python 数据分析 书籍推荐 知乎_Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书!...

    原标题:Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书! 作者 | Yura 责编 | 胡巍巍 高尔基这话有没有道理我不知道, 咱也不敢问, 主要是现在也问不了. 那对我来说,读 ...

  7. python自动爬取更新电影网站_python爬取电影网站信息

    一.爬取前提 1)本地安装了mysql数据库 5.6版本 2)安装了Python 2.7 二.爬取内容 电影名称.电影简介.电影图片.电影下载链接 三.爬取逻辑 1)进入电影网列表页, 针对列表的ht ...

  8. python爬取百度域名注册_python爬取百度域名_python爬取百度搜索結果url匯總

    寫了兩篇之后,我覺得關於爬蟲,重點還是分析過程 分析些什么呢: 1)首先明確自己要爬取的目標 比如這次我們需要爬取的是使用百度搜索之后所有出來的url結果 2)分析手動進行的獲取目標的過程,以便以程序 ...

  9. python爬虫公众号音频源代码_python爬取音频下载的示例代码

    抓取"xmly"鬼故事音频 import json # 在这个url,音频链接为JSON动态生成,所以用到了json模块 import requests headers = { & ...

最新文章

  1. Map再整理,从底层源码探究HashMap
  2. 深度学习-Tensorflow2.2-Eager模式与自定义训练{4}-微分运算训练练习-16
  3. java opencsv_用opencsv文件读写CSV文件
  4. java 数组转化为arraylist_在Java中怎样把数组转换为ArrayList?
  5. bootstrap模态框和select2合用时input无法获取焦点
  6. HTML5期末大作业:家乡介绍网站设计——辽宁沈阳网页设计(11页) HTML+CSS+JavaScript 旅游网页HTML代码 学生网页设计与制作期末作业下载 大学生网页设计与制作成品
  7. python 有限域函数库_有限域(4)——程序实现有限域的运算
  8. indexOf()用法
  9. Maven2的新特性
  10. 服务器的垃圾清扫系统指令,怎么用dos命令系统清理垃圾
  11. PCB中产生电磁干扰的原因及消除干扰技巧
  12. 法大大连续两年中国电子签名市场份额第一
  13. Nape的回调系统 nape.callbacks
  14. [zz]浅谈自然语言处理(NLP)和 自然语言理解(NLU)
  15. 20W了,从一颗种子开始 | 送书
  16. P85.2.(2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半的字符入栈)(C语言描述)
  17. gcc生成静态库和动态库,以及OpenCV3.4.11的安装和实例
  18. mysql5.7错误提示ERROR 1265 (01000)的问题分析及解决方案和修改字段属性为中文
  19. 大数据时代,我们必守的三条底线,大数据杀熟,不可忍
  20. 桔皮加蜂蜜的制作方法?桔皮加蜂蜜泡水喝吗?

热门文章

  1. byte[] 转成 bitmap
  2. svg的transform-matrix详解
  3. MVC (jsp + servlet + javabean) 以及jdbc
  4. JS 监听绑定和取消事件
  5. 【漏洞分析】dedecms有前提前台任意用户密码修改
  6. 转载 hashtable和dictionary的区别
  7. Arrays.asList 方法注意事项
  8. 求助帖--C++中单引号' '内多个字符是什么意思
  9. 图象和文本的绝对位置(九)
  10. pku1063 Flip and Shift严格证明