Python采集VIP收费QQ音乐,一起来听周董最新的《说好不哭》,省3块不香吗?
环境:
windows
python3.6.5
模块:
requests
selenium
json
re
urllib
环境与模块介绍完毕后,就可以来实行我们的操作了。
第1步:
通过一个解析网站:http://www.douqq.com/qqmusic/
我们可以发现,只需要在这里填写QQ音乐的地址,即可获取我们想要的音乐源文件。
第二步:
获取到QQ音乐的地址,打开我们的QQ音乐首页https://y.qq.com/
通过源文件,我们可以发现里面并没有我们想要的数据:
那么,我们再来抓包分析:
发现确实有我们想要的数据,但是当我们看到 headers报文当中的 url时,发现都是加密过后的数据!
所以涉及到了JS加密,那么 会有很多人感觉到很难,所以我们可以选择另外一个python模块selenium,直接获取我们的element 元素:
源代码为:
url=f'https://y.qq.com/portal/search.html#page=1&searchid=1&remoteplace=txt.yqq.top&t=song&w={name}' driver.get(url) driver.implicitly_wait(10) data=driver.find_element_by_xpath('//div[@class="songlist__item"]//span[@class="songlist__songname_txt"]/a').get_attribute('href')
这里的url是通过简单分析得到的结论,只需要修改w参数即可得到不同的音乐。
第三步
把我们渠道的data链接利用到我们的解析网站:http://www.douqq.com/qqmusic/
抓包分析:
可以发现这个是一个post请求,然后我们的表单提交的数据,就是我们的QQ音乐地址!
第四步:
模拟访问这个post请求,拿到我们的返回数据:
headers = { 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep-alive', ', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Host': 'www.douqq.com', 'Origin': 'http://www.douqq.com', 'Referer': 'http://www.douqq.com/qqmusic/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest', } data = {'mid': '前面取到的音乐地址'} url = 'http://www.douqq.com/qqmusic/qqapi.php' req = requests.post(url, data=data, headers=headers).text
它的返回值:
可以发现MV对应的链接有偏差,不是一个规则的URL,所以在此可以进行数据精炼,得到最终音乐链接:
req = json.loads(req) req = req.replace('\/\/', '//').replace('\/', '/') rg = re.compile('"mp3_l":"(.*?)",') rs = re.findall(rg, req)[0]
第五步:
下载音乐:
urlretrieve(rs, name+'.mp3')
效果:
Python采集VIP收费QQ音乐,一起来听周董最新的《说好不哭》,省3块不香吗?的更多相关文章
- Python 应用爬虫下载QQ音乐
Python应用爬虫下载QQ音乐 目录: 1.简介怎样实现下载QQ音乐的过程: 2.代码 1.下载QQ音乐的过程 首先我们先来到QQ音乐的官网: https://y.qq.com/,在搜索栏上输入一首 ...
- Appium + Python 测试 QQ 音乐 APP的一段简单脚本
1. 大致流程 + 程序(Python):打开 QQ 音乐,点击一系列接收按键,进入搜索音乐界面,输入『Paradise』,播放第一首音乐. 2. Python 脚本如下 from appium im ...
- Android 9 适配怎么做? “QQ音乐”优化实录
WeTest 导读 2018年8月7日,Google对外发布最新 Android 9.0 正式版系统,并宣布系统版本Android P 被正式命名为代号“Pie”,最新系统已经正式推送包括谷歌Pixe ...
- Python爬虫实战一之爬取QQ音乐
一.前言 前段时间尝试爬取了网易云音乐的歌曲,这次打算爬取QQ音乐的歌曲信息.网易云音乐歌曲列表是通过iframe展示的,可以借助Selenium获取到iframe的页面元素, 而QQ音乐采用的是 ...
- 手把手教你使用Python抓取QQ音乐数据(第一弹)
[一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...
- 手把手教你使用Python抓取QQ音乐数据(第二弹)
[一.项目目标] 通过Python爬取QQ音乐数据(一)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 此次我们在之前的基础上获取QQ音乐指定歌曲的歌词及前15个精 ...
- Python Scrapy的QQ音乐爬虫 音乐下载、爬取歌曲信息、歌词、精彩评论
QQ音乐爬虫(with scrapy)/QQ Music Spider UPDATE 2019.12.23 已实现对QQ音乐文件的下载,出于版权考虑,不对此部分代码进行公开.此项目仅作为学习交流使用, ...
- 亲测可用!免费下载QQ音乐大部分资源!
优化后亲测可用!免费下载QQ音乐大部分资源 通知 时间问题 博客园这边暂时停更要下载的去GitHub或者90盘 GitHub项目地址 https://github.com/TotoWang-hhh/m ...
- QQ音乐API分析记录
我一直是QQ音乐的用户,最近想做一个应用,想用QQ音乐的API,搜索了很久无果,于是就自己分析QQ音乐的API. 前不久发现QQ音乐出了网页版的,是Flash的,但是,我用iPhone打开这个链接的时 ...
随机推荐
- mybatis 源码分析(七)KeyGenerator 详解
一.KeyGenerator 概述 在平时开发的时候经常会有这样的需求,插入数据返回主键,或者插入数据之前需要获取主键,这样的需求在 mybatis 中也是支持的,其中主要的逻辑部分就在 KeyGen ...
- JavaScript 数据结构与算法之美 - 归并排序、快速排序、希尔排序、堆排序
1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...
- ThreadPoolExecutor执行任务,异常日志缺失问题
之前在使用自定义线程池异步执行耗时任务时,一直记着如果业务方法抛出异常没有捕获,那么是看不到日志框架输出的异常日志的,所以总是在业务方法中包裹一层try-catch捕获可能发生的异常.也未去深入为什么 ...
- NLP(二十) 利用词向量实现高维词在二维空间的可视化
准备 Alice in Wonderland数据集可用于单词抽取,结合稠密网络可实现其单词的可视化,这与编码器-解码器架构类似. 代码 from __future__ import print_fun ...
- 【CF 1059C】 Sequence Transformation 数学
C. Sequence Transformation:http://codeforces.com/contest/1059/problem/C 题意 给你一个n,第一次输出1-n个数的gcd,然后你可 ...
- 牛客暑假多校第五场 D inv
题意:给你一个n, 接来下给你一个 [1,n] 中偶数的排列, 还有一个 [1, n] 中 奇数 按照递增的顺序排列, 现在求一个原数列, 使得偶数列排序 和 奇数列 都是原数列的一个子序列, 现在求 ...
- Shiro实现用户对动态资源细粒度的权限校验
前言 在实际系统应用中,普遍存在这样的一种业务场景,需要实现用户对要访问的资源进行动态权限校验. 譬如,在某平台的商家系统中,存在商家.品牌.商品等业务资源.它们之间的关系为:一个商家可以拥有多个品牌 ...
- 【Redis】基本数据类型
一.概述 二.String(字符串) 三.List(列表) 四.Hash(字典) 五.Set(集合) 六.Sorted Set(有序集合) 一.概述 Redis目前支持5种数据类型,分别是: Stri ...
- Python操作MongoDB文档数据库
1.Pymongo 安装 安装pymongo: pip install pymongo PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成: 2.Pym ...
- moco 入门及问题解决
废话不多说 下载: http://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/ 选择最新版本下载jar包 启动: 1:在本地jar包 ...