Last active
August 27, 2019 05:27
-
-
Save j-iNFINITE/c7f7eaa53908d07101f142fc2d1f6b37 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
from urllib import parse | |
import os,re | |
def download(mid,artist,albumname,songname): | |
def nametest(name): | |
reg = re.compile(r'[\\/:*?"<>|\r\n]+') | |
valid_name = reg.findall(name) | |
if valid_name: | |
for nv in valid_name: | |
name = name.replace(nv, "") | |
return name | |
url='https://music.ghpym.com/api/ajax.php' | |
postdata={ | |
'mid':'{}'.format(mid), | |
'fun':'fun_get_qqmusic_url', | |
'type':'320' | |
} | |
downloadurl='https://music.ghpym.com/'+session.post(url,postdata).text | |
albumname=nametest(albumname) | |
songname=nametest(songname) | |
if albumname==' ':albumname='其他' | |
if os.path.isfile(r'{}/{}/{}.mp3'.format(artist,albumname,songname)):return | |
if not os.path.exists(r'{}/{}'.format(artist,albumname)): | |
os.makedirs(r'{}/{}'.format(artist,albumname)) | |
with open(r'{}/{}/{}.mp3'.format(artist,albumname,songname),'wb') as f: | |
f.write(session.get(downloadurl).content) | |
def search(artist,page=1): | |
url='https://music.ghpym.com/api/ajax.php' | |
postdata = { | |
'word': '{}'.format(parse.quote(artist)), | |
'page': '{}'.format(page), | |
'fun': 'fun_search_qq', | |
} | |
rsp=session.post(url, postdata).json() | |
totalnum=rsp['data']['totalnum'] | |
curnum=rsp['data']['curnum'] | |
for e in rsp['data']['list']: | |
songname = e['songname'] | |
albumname = e['albumname'] | |
sizeflac = e['sizeflac'] | |
songmid =e['songmid'] | |
if 'live' in songname or 'Live' in songname or '演唱会' in albumname or sizeflac==0:continue | |
print(songmid,artist,albumname,songname) | |
download(songmid,artist,albumname,songname) | |
if curnum!=0: | |
page+=1 | |
search(artist,page) | |
if __name__ == '__main__': | |
session=requests.Session() | |
session.headers['User-Agent']='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134' | |
search('澤野弘之') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment