# -*- coding:utf-8 -*-
import requests
import re
import json
import os
#通过id下载歌曲
def get_mp3(sid,name):
api = 'http://musicapi.qianqian.com/v1/restserver/ting?method=baidu.ting.song.play&format=jsonp&callback=jQuery17206882464381570916_1530080289497&songid=%s&_=1530080292670'%sid
response = requests.get(api)
data = response.text
data = re.findall(r'\((.*)\)',data)[0]
data = json.loads(data)
try: # 可能会出现异常的一段代码
url = data['bitrate']['file_link']
filename = data['songinfo']['title']+'.mp3'
asd=re.split(r'"|\?',filename)
if len(asd) == 3:
filename=asd[0]+'_'+asd[1]+"_"+asd[2]+'.mp3'
elif len(asd) == 2:
filename=asd[0]+asd[1]
print(filename)
##下载
#发送http请求
response = requests.get(url)
#写出mp3
with open("%s\\"%name+filename,'wb') as f:
f.write(response.content)
except:
return
#确定页数获取sid
def get_name_num(name):
q=[]
api = 'http://music.taihe.com/search/song?s=1&key=%s&jump=20&start=20&size=20&third_type=0'% name
response = requests.get(api)
data = response.text
data = re.findall(r'">(\d+)</a>',data)
num = data.pop()
for i in range(int(num)):
url = 'http://music.taihe.com/search/song?s=1&key=%s&start=%s&size=20&third_type=0'%(name,i*20)
response = requests.get(url)
data = response.text
data = re.findall(r'oid":(\d+),', data)
q.extend(data)
return q
name = input("输入:")
os.mkdir(name)
sid = []
sid = get_name_num(name)
for i in sid:
get_mp3(i,name)
百度音乐爬虫
猜你喜欢
转载自blog.csdn.net/m0_37416991/article/details/81185041
今日推荐
周排行