import requests,openpyxl#导入模块wb=openpyxl.Workbook() #创建工作薄sheet=wb.active #获取工作薄的活动表sheet.title='restaurants' #工作表重命名sheet['A1'] ='歌曲名'#加表头,给A1单元格赋值sheet['B1'] ='所属专辑' #加表头,给B1单元格赋值sheet['C1'] ='播放时长' #加表头,给C1单元格赋值sheet['D1'] ='播放链接' #加表头,给D1单元格赋值url = 'https://c./soso/fcgi-bin/client_search_cp'#所爬取歌手的QQ音乐网址for x in range(5):#爬取歌曲的页数,这个是5页,建议不要太大,否则容易被认为恶意爬取params = {'ct': '24','qqmusic_ver': '1298','new_json': '1','remoteplace': 'sizer.yqq.song_next','searchid': '64405487069162918','t': '0','aggr': '1','cr': '1','catZhida': '1','lossless': '0','flag_qc': '0','p': str(x + 1),'n': '20','w': '周杰伦',#所爬取歌手的名字'g_tk': '5381','loginUin': '0','hostUin': '0','format': 'json','inCharset': 'utf8','outCharset': 'utf-8','notice': '0','platform': 'yqq.json','needNewCode': '0'}# 将参数封装为字典res_music = requests.get(url, params=params)# 调用get方法,下载这个列表json_music = res_music.json()# 使用json()方法,将response对象,转为列表/字典list_music = json_music['data']['song']['list']# 一层一层地取字典,获取歌单列表for music in list_music:name = music['name']# 以name为键,查找歌曲名,把歌曲名赋值给namealbum = music['album']['name']# 查找专辑名,把专辑名赋给albumtime = music['interval']# 查找播放时长,把时长赋值给timelink = '/n/yqq/song/' + str(music['file']['media_mid']) + '.html\n\n'# 查找播放链接,把链接赋值给linksheet.append([name, album, time,url])# 把name、album、time和link写成列表,用append函数多行写入Excelprint('歌曲名:' + name + '\n' + '所属专辑:' + album +'\n' + '播放时长:' + str(time) + '\n' + '播放链接:'+ url)wb.save('Jay.xlsx') #最后保存并命名这个Excel文件
如果觉得《python批量爬取QQ音乐歌手的歌曲等信息》对你有帮助,请点赞、收藏,并留下你的观点哦!