第一个小小代码,开始我的程序员之旅

获取网易云音乐飙升榜

通过代码,获取榜单音乐链接,歌曲名字,歌曲作者等

下面是详细代码内容

import json
import requests
from bs4 import BeautifulSoup
import csv


def get_music_name():
    def music_times(time):
        music_time_ = time // 1000
        _time = music_time_ % 60
        music_time_ //= 60
        if _time <= 9:
            _time = '0' + str(_time)
        _time = str(_time)
        music__time = str(music_time_) + ':' + _time
        return music__time

    url = 'https://music.163.com/discover/toplist'
    url_head = 'https://music.163.com'
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/87.0.4280.141 Safari/537.36'}
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        with open('music_message.csv', 'w', encoding='utf-8') as stream:
            dict_stream = csv.DictWriter(stream, ['music_ranking', 'music_name', 'music_time',
                                                  'music_author', 'music_url'])
            data = response.text
            soup = BeautifulSoup(data, 'html.parser')
            comment = soup.select_one('#song-list-pre-cache')
            music_dicts = comment.select_one('textarea').string
            music_dict = json.loads(music_dicts)
            items = comment.select('a')
            all_comments = []
            i = 0
            for item in items:
                music_comment = {}
                music_name = item.text
                music_url = item.get('href')
                music_time = music_dict[i]['duration']
                music_author = music_dict[i]['artists'][0]['name']
                i += 1
                music_ranking = i
                music_comment['music_ranking'] = music_ranking
                music_comment['music_name'] = music_name
                music_comment['music_time'] = music_times(music_time)
                music_comment['music_author'] = music_author
                music_comment['music_url'] = url_head + music_url
                all_comments.append(music_comment)
            dict_stream.writerows(all_comments)
            print('写入完毕')
        return all_comments
    else:
        print('网页丢失!')


if __name__ == '__main__':
    music_list = get_music_name()

后期实现目标,通过歌曲链接,获取歌曲图片,评论等等

加油!代码人

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值