Python爬取网易云音乐热门评论

以下是Python爬取网易云音乐热门评论的完整攻略:

1. 确认目标页面

首先需要打开网易云音乐的热门评论页面,例如:https://music.163.com/#/song?id=290192&market=baiduqk

2. 获取评论API地址

在浏览器的开发者工具中,切换到Network标签页,并刷新页面。此时可以在页面响应数据中找到/api/v1/resource/comments/R_SO_4_290192这样的API地址。

3. 发送请求获取数据

使用Python的requests模块,向上一步获取到的API地址发送GET请求,并设置相关参数(如请求头或代理等)。将响应的JSON数据解析成Python对象,即可获取到评论数据。示例代码如下:

import requests

url = 'http://music.163.com/api/v1/resource/comments/R_SO_4_290192'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
proxies = {'http': 'http://127.0.0.1:1080', 'https': 'http://127.0.0.1:1080'}
res = requests.get(url, headers=headers, proxies=proxies)
comments = res.json()['hotComments']

4. 分析数据结构

由于响应数据是JSON格式,可以使用json模块将其解析成Python对象。分析数据结构,找出自己需要的信息,例如:评论的用户昵称和评论内容。示例代码如下:

for comment in comments:
    nickname = comment['user']['nickname']
    content = comment['content']
    print(f'{nickname}: {content}')

此时输出的内容为热门评论中所有用户的昵称和评论内容。

5. 存储数据(可选)

如果需要将爬取到的数据进行存储或分析,可以使用相关的Python库进行处理。例如,可以使用pandas库将数据转换为DataFrame格式,方便后续操作。

import pandas as pd

data = [{'nickname': comment['user']['nickname'], 'content': comment['content']} for comment in comments]
df = pd.DataFrame(data)
df.to_csv('comments.csv', index=False, header=True)

此时将所有热门评论的用户昵称和评论内容保存到comments.csv文件中。

示例说明

示例1:获取指定歌曲的所有热门评论

import requests

def get_hot_comments(song_id):
    url = f'http://music.163.com/api/v1/resource/comments/R_SO_4_{song_id}'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    res = requests.get(url, headers=headers)
    return res.json()['hotComments']

if __name__ == '__main__':
    comments = get_hot_comments(290192)
    for comment in comments:
        nickname = comment['user']['nickname']
        content = comment['content']
        print(f'{nickname}: {content}')

这段代码将获取歌曲ID为290192的所有热门评论。

示例2:获取指定歌手所有歌曲的热门评论

import requests

# 获取指定歌手的所有歌曲信息
def get_artist_songs(artist_id):
    url = f'http://music.163.com/api/v1/artist/{artist_id}?ext=true'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    res = requests.get(url, headers=headers)
    songs = res.json()['hotSongs']
    return [(song['id'], song['name']) for song in songs]

if __name__ == '__main__':
    artist_id = 6452  # 周杰伦的artist_id
    songs = get_artist_songs(artist_id)
    for song_id, song_name in songs:
        comments = get_hot_comments(song_id)
        print(f'歌曲[{song_name}]的热门评论:')
        for comment in comments:
            nickname = comment['user']['nickname']
            content = comment['content']
            print(f'{nickname}: {content}')
        print('\n')

这段代码将获取周杰伦所有歌曲的热门评论。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬取网易云音乐热门评论 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • PHP实现浏览器中直接输出图片的方法示例

    可以通过以下步骤实现PHP在浏览器中直接输出图片的方法: 实现方法 使用PHP原生函数实现 <?php $filename = "test.png"; // 返回文件类型,例如image/png $file_type = mime_content_type($filename); // 将文件以文件流的形式输出 header(&qu…

    PHP 2023年5月26日
    00
  • php学习之function的用法

    PHP学习之Function的用法 什么是Function Function是指一个封装代码块的结构,它可以接收零到多个参数并返回值,可以是内置的也可以是自定义的。在大型、复杂的项目中,使用Function可以使代码更加模块化,提高代码的可读性和可维护性。 Function的定义和调用 在PHP中,定义Function的语法如下: function func…

    PHP 2023年5月27日
    00
  • PHP电子书

    PHP电子书攻略 1. 什么是PHP电子书 PHP电子书是一种基于PHP语言开发的电子书制作工具,它能够将Markdown格式的文本快速而又方便地转换成漂亮的电子书,支持多种主题和自定义样式。 2. 使用PHP电子书制作电子书的流程 制作电子书的流程主要分为以下几个步骤: 安装PHP电子书 PHP电子书是一款开源软件,可在GitHub上免费下载,下载地址为h…

    PHP 2023年5月23日
    00
  • 深入php 正则表达式的学习探讨

    深入PHP正则表达式的学习探讨 什么是正则表达式? 正则表达式是一种文本模式,用于在字符串中匹配一个或多个模式。正则表达式的特点是灵活、强大,能够通过一些特定的语法规则来匹配符合规则的字符串。 正则表达式的语法 正则表达式语法非常灵活,可以通过特定的语法规则来匹配符合规则的字符串。其中一些常用的语法元字符如下: .:匹配任意单个字符除了换行符。 *:匹配前面…

    PHP 2023年5月26日
    00
  • php的array数组和使用实例简明教程(容易理解)

    PHP的Array数组和使用实例简明教程 什么是Array数组 Array数组是PHP中最常用的数据类型之一。它能够处理不同类型的数据,并通过索引或键值对的方式进行存储和访问。 Array数组可以使用以下两种方式进行声明: // 使用array()函数进行声明 $my_array = array("apple", "banana…

    PHP 2023年5月26日
    00
  • 微信小程序动态添加分享数据

    标题:如何动态添加微信小程序分享数据 在微信小程序中,我们可以通过使用JS-SDK和自定义转发来实现动态添加分享数据。下面将详细介绍如何实现这个功能。 步骤1:配置JS-SDK 在小程序入口页面的onLoad生命周期中,调用微信官方提供的wx.config方法配置JS-SDK。如下所示: wx.config({ debug: false, appId: ‘y…

    PHP 2023年5月30日
    00
  • PHP判断两个给定日期是否在同一周的方法

    判断两个给定日期是否在同一周,可以使用PHP的date函数和strtotime函数完成。具体方法如下: 获取两个日期对应的星期几 使用date函数可以获取一个日期对应的星期几,例如: $date1 = ‘2021-07-01’; $week1 = date(‘w’, strtotime($date1)); $date2 = ‘2021-07-05’; $we…

    PHP 2023年5月26日
    00
  • 基于静态Singleton模式的使用介绍

    我来为你讲解“基于静态 Singleton 模式的使用介绍”的完整攻略。 什么是 Singleton 模式 Singleton 模式是一种创建型模式,其指的是一个类仅有一个实例,并且提供访问该实例的全局访问点。Singleton 模式通常用来控制服务线程池、计数器或者共享打印机等需要在整个程序中只有一个实例的情况。 静态 Singleton 模式 静态 Si…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部