吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8013|回复: 16
收起左侧

[Python 转载] Python采集VIP收费QQ音乐,一起来听周董最新的《说好不哭》,省3块不香吗?

[复制链接]
长情 发表于 2019-9-24 15:06
环境:
  • windows
  • python3.6.5
模块:
  • requests
  • selenium
  • json
  • re
  • urllib环境与模块介绍完毕后,就可以来实行我们的操作了。
完整源码:

链接:https://pan.baidu.com/s/1_oPawjY1zRflSvd8HjUJXQ
提取码:0uv6
过期后留言我补!
第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请求,拿到我们的返回数据:
[url=][/url]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-Length': '65',    '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
[url=][/url]
它的返回值: 可以发现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')效果:

免费评分

参与人数 6吾爱币 +7 热心值 +6 收起 理由
我叫周奔跑 + 1 + 1 我很赞同!
32岁打野想吃兵 + 1 + 1 我很赞同!
pj2016 + 1 + 1 为 了大家的3块钱,你也是拼了,必须给分
VoidreaverArer + 2 + 1 谢谢@Thanks!
我的盘由我做主 + 1 + 1 支持大佬..厉害厉害!!!
伴无言 + 1 + 1 大佬厉害,学习一下。

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

szl1314szl 发表于 2019-9-24 15:16
想听歌不需要这么麻烦
zl33333 发表于 2019-9-24 15:46
报错

[Python] 纯文本查看 复制代码
Warning (from warnings module):
  File "D:\2345Downloads\QqMusicSpider.py", line 70
    chrome_options=option)
DeprecationWarning: use options instead of chrome_options
Traceback (most recent call last):
  File "D:\Program Files\Python37\Python37\lib\site-packages\selenium\webdriver\common\service.py", line 76, in start
    stdin=PIPE)
  File "D:\Program Files\Python37\Python37\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "D:\Program Files\Python37\Python37\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\2345Downloads\QqMusicSpider.py", line 70, in <module>
    chrome_options=option)
  File "D:\Program Files\Python37\Python37\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__
    self.service.start()
  File "D:\Program Files\Python37\Python37\lib\site-packages\selenium\webdriver\common\service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
zl33333 发表于 2019-9-24 15:36
yanmingming 发表于 2019-9-24 15:45
充钱就可以听了
 楼主| 长情 发表于 2019-9-24 15:54
zl33333 发表于 2019-9-24 15:46
报错

[mw_shl_code=python,true]Warning (from warnings module):

缺少 驱动, 百度下,如何下载chromdriver 如果你是用的谷歌浏览器的话!
DDUU 发表于 2019-9-24 16:10
emm接口好像失效了,获取到的链接都不能用
God_Fire 发表于 2019-9-24 18:07
收费歌曲下载不了,参考验证:
搜索 说好不哭 然后输入序号1后报错
搜索 夜曲 会出现一部分歌曲,但是直接报错,无法继续
xiaobaibaibai 发表于 2019-9-24 18:50
python大佬~ 赞
 楼主| 长情 发表于 2019-9-24 18:52
God_Fire 发表于 2019-9-24 18:07
收费歌曲下载不了,参考验证:
搜索 说好不哭 然后输入序号1后报错
搜索 夜曲 会出现一部分歌曲,但是直 ...

部分歌曲下不了,说好不哭 只有MV
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 19:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表