# -*- coding: utf-8 -*- import json import requests headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36", "cookie": "pgv_pvi=1768340480; RK=/DV3MHhaP4; OUTFOX_SEARCH_USER_ID_NCOO=1311970987.4293392; eas_sid=r185O1f0W2v3I826X7S3i6s4M6; tvfe_boss_uuid=3d6fb3025b05dd4c; pgv_pvid=6870059684; ptcz=c4e4978e7040d9123825bca6bbaeedab3d67c8059367c90266f7075c7e226fbf; o_cookie=1013975672; pac_uid=1_1013975672; pt2gguin=o1013975672; uin=o1013975672; ptisp=ctc; pgv_si=s3445758976; pgv_info=ssid=s5839415696; rv2=80A3CC87FD545565845367569D5B72DBE8A6BB706CA754F38C; property20=001BCA54C0D46A670EA6D504DEEE2934BCF965F9788E515290F7832683AF74743B21D9CC150AE51E; skey=@r7YnIjzF8; luin=o1013975672; lskey=000100007cc7bb12bd64b8e34052621ea8ced8a29328c524e523179fd167a533e132f6e34d36ed1ab582ceda; yxzj_a20180122snkk_role_1013975672=%7B%22uOpenId%22%3A%22C850F193A25C75E4D3F1A53A03221EFC%22%2C%22sArea%22%3A%221%22%2C%22sPartition%22%3A%221259%22%2C%22sAreaName%22%3A%22%u738B%u65CF%u8840%u7EDF%22%7D; ts_refer=ADTAGbaiduald; ts_uid=9186083990; yq_index=0; yqq_stat=0; ts_last=y.qq.com/portal/playlist.html", "referer": "https://y.qq.com/portal/playlist.html" } # 首先获取歌单列表 def crawl_music_list(): music_list_url = 'https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg?picmid=1&rnd=0.1981010046443148&g_tk=584906688&jsonpCallback=getPlaylist&loginUin=1013975672&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0&categoryId=165&sortId=5&sin=0&ein=29' response = requests.get(music_list_url, headers=headers) response.encoding = 'utf-8' data_str = response.text data_str = data_str.replace('getPlaylist(', '') data_str = data_str[:-1] data = json.loads(data_str) music_list = data['data']['list'] for each in music_list: dissid = each['dissid'] dissname = each['dissname'] print('************开始获取歌单:{}**************'.format(dissname)) crawl_music_info(dissid) # 根据歌单id,获取一个歌单中每首歌的信息 def crawl_music_info(dissid): music_info_url = 'https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg?type=1&json=1&utf8=1&onlysong=0&disstid={}&format=jsonp&g_tk=584906688&jsonpCallback=playlistinfoCallback&loginUin=1013975672&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0'.format( dissid) response = requests.get(music_info_url, headers=headers) response.encoding = 'utf-8' data_str = response.text data_str = data_str.replace('playlistinfoCallback(', '') data_str = data_str[:-1] data = json.loads(data_str) songlist = data['cdlist'][0]['songlist'] for song in songlist: songname = song['songname'] singer = ';'.join([each['name'] for each in song['singer']]) albumname = song['albumname'] song_url = 'https://y.qq.com/n/yqq/song/' + song['strMediaMid']+'.html' print('*************') print(u'歌曲名\t' + songname) print(u'专辑\t' + albumname) print(u'URL\t' + song_url) if __name__ == "__main__": crawl_music_list()
Python requests 爬取qq音乐URL
猜你喜欢
转载自blog.csdn.net/qq_38691608/article/details/79384276
今日推荐
周排行