python简单程序爬取酷我音乐歌曲信息

程序自动过滤掉《歌手(artist)》部分字符串长度大于6字节的数据,使后期的表格更美观

而导致筛选后没有30条数据

程序--down_music--方法中:  header部分得自己加上去

在酷我音乐中按12打开点击network,Ctrl+R刷新一下随便打开一个文件查看

Cookie:
csrfHost:
Referer:
User-Agent:

如需要有30条数据,需要删除第39行条件判断:

'''
歌曲连接:
http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key=%E6%9D%8E%E8%8D%A3%E6%B5%A9&pn=1&rn=30&httpsStatus=1&reqId=189d5b41-238d-11ed-acf4-4f6bf15618b2
'''

import requests
import prettytable as pt  # 制表
import time


class Kuwo_music:
    def __init__(self, urls):
        self.urls = urls

    def get_html(self, url):
        header = {

            "Cookie": "自己加 ",
            "csrf": "自己加",
            "Host": "www.kuwo.cn",
            "Referer": "http://www.kuwo.cn/search/list?key=%E6%9D%8E%E8%8D%A3%E6%B5%A9",
            "User-Agent": "自己加"

        }
        return requests.get(url, headers=header)

    def down_music(self):
        json_data = self.get_html(self.urls).json()
        json_list = json_data['data']['list']
        tb = pt.PrettyTable()
        tb.field_names = ["序号", "歌手", "歌曲", "歌曲id", "发行时间"]
        count = 0
       
        for data in json_list:
            artist = data["artist"]
            name = data["name"]
            musicrid = data["musicrid"]
            releaseDate = data["releaseDate"]
            if len(artist) <= 6:
                tb.add_row([count, artist, name, musicrid, releaseDate])
            else:
                continue
            count += 1
        print(tb)


if __name__ == '__main__':
    print("程序仅爬取歌曲信息,没有下载功能".center(70, '*'))
    pages = int(input("输入爬取歌曲页数(一页30首歌):"))
    name = input("歌手名字:")
    for page in range(1, pages + 1):
        urls = f"http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={name}&pn={page}&rn=30&httpsStatus=1" \
               "&reqId=189d5b41-238d-11ed-acf4-4f6bf15618b2 "
        wo = Kuwo_music(urls)
        wo.down_music()
        time.sleep(0.5)
    input('Press<Enter')
运行查看结果:

 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值