[Python] 纯文本查看 复制代码#!/usr/bin/env python

# -*- coding: utf-8 -*-

# [url=home.php?mod=space&uid=238618]@Time[/url] : 2018/7/20 14:37

# [url=home.php?mod=space&uid=686208]@AuThor[/url] : Bnightning

# [url=home.php?mod=space&uid=406162]@site[/url] : https://www.bnightning.cn

# [url=home.php?mod=space&uid=267492]@file[/url] : douqq.py

# @Software: PyCharm

import requests

import json

headers = {

'Host': 'c.y.qq.com',

'Referer': 'http://c.y.qq.com/',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 '

'Safari/537.36 '

}

def douqq_post(mid):

"""

返回歌曲下载url

:param mid:歌曲mid

:return: 字典

"""

post_url = 'http://www.douqq.com/qqmusic/qqapi.php'

data = {'mid': mid}

res = requests.post(post_url, data=data)

get_json = json.loads(res.text)

return eval(get_json)

def download_file(src, file_path):

"""

歌曲下载

:param src: 下载链接

:param file_path: 存储路径

:return: 文件路径

"""

r = requests.get(src, stream=True)

f = open(file_path, "wb")

for chunk in r.iter_content(chunk_size=512):

if chunk:

f.write(chunk)

return file_path

def choice_download(dic):

print('1. m4a视频')

print('2. mp3普通品质')

print('3. mp3高品质')

print('4. ape高品无损')

print('5. flac无损音频')

select = int(input("Please input your choice:"))

src = ''

postfix = ''

if select == 1:

src = dic['m4a']

postfix = '.m4a'

if select == 2:

src = dic['mp3_l']

postfix = '.mp3'

if select == 3:

src = dic['mp3_h']

postfix = '.mp3'

if select == 4:

src = dic['ape']

postfix = '.ape'

if select == 5:

src = dic['flac']

postfix = '.flac'

return postfix, src.replace('\/\/', '//').replace('\/', '/')

def find_song(word):

"""

查找歌曲

:param word: 歌曲名

:return: 返回歌曲mid

"""

get_url = '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

res1 = requests.get(get_url, headers=headers)

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

jsons = get_json['data']['song']['list']

songmid = []

media_mid = []

song_singer = []

i = 1

for song in jsons:

# print(i, ':' + song['songname'], '---', song['singer'][0]['name'], song['songmid'], song['media_mid'])

print(i, ':' + song['songname'], '---', song['singer'][0]['name'])

songmid.append(song['songmid'])

media_mid.append(song['media_mid'])

song_singer.append(song['singer'][0]['name'])

i = i + 1

select = int(input("Please input your choice:")) - 1

return songmid[select], song_singer[select]

if __name__ == '__main__':

# songname = '叹云兮'

songname = input("Please input the music name:")

song_mid, singer = find_song(songname)

dic = douqq_post(song_mid)

# {

# "mid":"004FjJo32TISsY",

# "m4a":"http:\/\/dl.stream.qqmusic.qq.com\/C400004FjJo32TISsY.m4a?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=38",

# "mp3_l":"http:\/\/dl.stream.qqmusic.qq.com\/M500004FjJo32TISsY.mp3?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53",

# "mp3_h":"http:\/\/dl.stream.qqmusic.qq.com\/M800004FjJo32TISsY.mp3?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53",

# "ape":"http:\/\/dl.stream.qqmusic.qq.com\/A000004FjJo32TISsY.ape?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53",

# "flac":"http:\/\/dl.stream.qqmusic.qq.com\/F000004FjJo32TISsY.flac?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53",

# "pic":"https:\/\/y.gtimg.cn\/music\/photo_new\/T002R300x300M000003NZyTh4eMMsp.jpg?max_age=2592000"

# }

# print('mid:'+dic['mid'])

postfix, url = choice_download(dic)

save_path = "H:\\Music\\"

download_file(url, save_path + songname + ' - ' + singer + postfix)

print('Download Successful')

python爬取付费音乐包_Python 收费、高品质无损音乐下载【开源】相关推荐

  1. 使用python爬取付费音乐

    在使用 Python 爬取付费音乐时,有几点需要注意: 侵犯版权是违法行为,因此您需要确保您有权进行爬取. 如果您想爬取付费音乐,可能需要使用一些反爬虫技术来避免被网站封禁.这可能包括使用代理服务器. ...

  2. python爬取电脑本地数据_利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息...

    原标题:利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息 新型肺炎肆虐全国,可以预知,最近一两年地理学中会有一部分论文研究新型肺炎的空间分布及与其他指标的关联分析.获取其患病人 ...

  3. 写一段python爬取付费音乐的代码

    这里是一段爬取付费音乐的 Python 代码: import requests import json# 请求头 headers = {"User-Agent": "Mo ...

  4. 用python爬取网易云评论_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  5. python 爬取歌曲程序_如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 今天来教大家一个自动化爬虫的工具 selenium selenium Se ...

  6. python爬取b站评论_python高效之爬了B站再爬微博

    全文简介 本文是用Python爬取微博移动端的数据.可以看一下Robots协议.另外尽量不要爬取太快.如果你毫无节制的去爬取别人数据,别人网站当然会反爬越来越严厉.所以,不要难为别人,到最后其实是在难 ...

  7. python爬取新闻存入数据库_python 爬取古诗文存入mysql数据库的方法

    使用正则提取数据,请求库requests,看代码,在存入数据库时,报错ERROR 1054 (42S22): Unknown column 'title' in 'field list'.原来是我写s ...

  8. python爬取json简单吗_Python爬取Json数据的示例

    Python教程栏目介绍爬取Json数据实例 相关免费学习推荐:python教程(视频) 本文中以爬取其中的AI流转率数据为例. 该地址返回的响应内容为Json类型,其中红框标记的项即为AI流转率值: ...

  9. python爬取新闻存入数据库_Python爬取数据并写入MySQL数据库的实例

    按 F12 或 ctrl+u 审查元素,结果如下: 结构很清晰简单,我们就是要爬 tr 标签里面的 style 和 tr 下几个并列的 td 标签,下面是爬取的代码: #!/usr/bin/env p ...

  10. python爬取贴吧图片_Python爬取贴吧多页图片

    Python爬取贴吧图片都只能爬取第一页的,加了循环也不行,现在可以了. #coding:utf-8 import urllib import urllib2 import re import os ...

最新文章

  1. linux su -c命令
  2. Google Map API 学习六-设置infoWindow的长宽
  3. 华为p8升级android8系统资源,华为鸿蒙系统已陆续推送! 安卓系统可无缝升级: 升级包容量高达6GB...
  4. Maven_1.了解Maven以及其安装配置
  5. GDCM:gdcm::DICOMDIR的测试程序
  6. find IBASE structure - CRM_IBASE_COMP_FIND_MULTI - IBSP, IBIB
  7. 《哪吒之魔童降世》观影人次突破1亿大关 为动画电影之最!
  8. php连接memcache(php.ini配置)
  9. 帝国后台报错:out of memory
  10. sql limit 子句_SQL有子句–综合指南
  11. 全球编程厉害的14位大佬
  12. python str函数数字转换成字符串,Pandas将数字转换为字符串意外结果
  13. Python之文本去重(基础版)
  14. es文件无法找到局域网服务器,手机ES文件管理器局域网连接电脑WIN10,访问电脑文件...
  15. android指纹采集sdk,SDK上的Android指纹23
  16. 两台电脑直接使用一根网线传输文件
  17. python3GUI--微博图片爬取工具V1.5(附源码)
  18. 人们说程序员很高大上,程序员是做编程的,编程又是做什么呢?
  19. 点电荷分布matlab仿真,利用Matlab模拟点电荷的电场分布..doc
  20. 获取一个月有多少天,生成日历

热门文章

  1. pe系统安装win10系统
  2. Python 打造最强表白程序(源码)
  3. 免越狱免签名苹果ios webAPP打包生成网站APP教程附iphone配置实用工具
  4. 科技文献检索课题 计算机,科技文献检索完整作业
  5. Excel VBA与VSTO基础实战指南 VBA和VSTO权威教材
  6. 使用蒙特卡罗模拟期权定价
  7. 工程测量计算机在线用,工程测量中的计算机编程新技术.doc
  8. 干涉测量技术的应用_特殊工程的施工测量技术应用分享
  9. HU6285A升压输出12V,电流1A芯片
  10. docker搭建linux集群,搭建mpi环境,并使用MTT benchmark测试集群性能