python爬虫大作业|python爬虫大作业、爬取一位歌手的所有歌曲_python爬取一位歌星的歌单
本文以爬取QQ音乐播放器中周深的歌为例,为了避免服务器过大的负载,我们只爬取五页歌单;
将爬取的数据用openpyxl模块存储到excel表
一、
1、用谷歌浏览器打开QQ音乐,搜索“周深”,打开开源界面,查看页源代码
文章图片
2、刷新一下网页,在“name”中找到下面比较大的文件,有时候找好几个才能找到(这个需要注意挑选查看"data-song-list"中有周深的歌单,如下图)
文章图片
3、查看"data-song-list"中有周深的歌单,里面是我们需要爬取的信息,如下图
文章图片
list里面的信息:
文章图片
文章图片
4、查看Headers信息,查到我们需要的url、请求头信息、url中关于周深歌单的参数等信息
文章图片
文章图片
根据上图得到的信息,我们把关于周深歌单的重要参数修改为代码形式,方便我们调用(注:python中存储请求头信息格式是字典形式)
5、根据开源工具得出请求头(Request Headers)信息:user-agent ,如下图。
文章图片
二、根据我们查阅HTML网页信息,下面进行代码展示:
#导入模块
import requests
import openpyxl
#创建excel表,用于存储爬取的数据
wb=openpyxl.Workbook()
sheet=wb.active
sheet.title='zhoushen'
sheet['A1']='歌名'
sheet['B1']='所属专辑'
sheet['C1']='播放时长'
sheet['D1']='播放链接'
#上图中得到的请求url
url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp'
#我们只爬取5页歌单,避免服务器负载过大
for x in range(5):
params = {
'ct': '24',
'qqmusic_ver': '1298',
'new_json': '1',
'remoteplace': 'txt.yqq.song',
'searchid': '61766693544760980',
't': '0',
'aggr': '1',
'cr': '1',
'catZhida': '1',
'lossless': '0',
'flag_qc': '0',
'p': str(x + 1),
'n': '10',
'w': '周深',
#'g_tk_new_20200303': '5381'
'g_tk': '5381',
'loginUin': '0',
'hostUin': '0',
'format': 'json',
'inCharset': 'utf8',
'outCharset': 'utf-8',
'notice': '0',
'platform': 'yqq.json',
'needNewCode': '0'
}
headers={
'user-agent': 'Mozilla/5.0 (Linux;
Android 6.0;
Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Mobile Safari/537.36'
}
#连接QQ音乐
res_music = requests.get(url,headers=headers,params=params)
#获取json(列表/字典写成的字符串)存储的信息
json_music = res_music.json()
#根据以上图中信息的数据结构提取网页信息
list_music = json_music['data']['song']['list']
for music in list_music:
name=music['name']
edition=music['album']['name']
time=str(music['interval'])
link='https://y.qq.com/n/yqq/song/' + music['file']['media_mid'] + '.html\n\n'
#将获取的信息逐一添加到excel活动表中
sheet.append([name,edition,time,link])
print('歌名:'+name+'专辑:'+edition+'时长:'+time+'链接:'+link)
#保存excel表数据
wb.save('Zhoushen.xlsx')
三、上面的代码执行后,周深的歌单信息就保存在excel表中了,下面是我们爬取周深的歌单。
【python爬虫大作业|python爬虫大作业、爬取一位歌手的所有歌曲_python爬取一位歌星的歌单】
文章图片
推荐阅读
- python|Python爬取网易云音乐网易云音乐歌手歌曲和歌单,并下载到本地
- python爬取音乐并保存_python爬取QQ音乐歌单歌曲保存到本地,json解析
- Python|python.exe和pythonw.exe的区别
- Python实现QQ音乐爬取下载最新可用
- pythonqq音乐爬虫_手把手教你使用Python抓取QQ音乐数据(第二弹)
- python爬取qq音乐周杰伦_Python爬取QQ音乐url及批量下载
- python|Python【 for循环与while循环】
- 从重大漏洞应急看云原生架构下的安全建设与安全运营(下)
- 恒源云(Gpushare)_JupyterLab/TensorBoard使用问题(技巧大放送4!)
- Python文件的应用之序列化与反序列化详解