当前位置: 首页 > news >正文

【爬虫】网易云音乐评论数据爬取

文章目录

  • 🍖 前言
  • 🎶一、抓取要求
  • ✨二、代码展示
  • 🏀三、运行结果
  • 🏆四、知识点提示


🍖 前言

【爬虫】网易云音乐歌词/评论数据爬取


🎶一、抓取要求

描述:
输入歌曲的id,获取对应歌曲的用户评论信息

✨二、代码展示

代码如下:

from collections import OrderedDict
import requests as rq
import logging
import subprocess
import re

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - 网易音乐歌词Spider - %(message)s')

# url记得脱密
url = 'aHR0cHM6Ly9tdXNpYy4xNjMuY29tL3dlYXBpL2NvbW1lbnQvcmVzb3VyY2UvY29tbWVudHMvZ2V0' 

headers = OrderedDict()
headers['user-agent'] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"

data = {
    "params": "",
    "encSecKey": ""
}


time_ = ''
for page in range(1, 10):
    print(['node', './js/comment.js', "2689097846", str(time_), str(page)])
    result = subprocess.run(['node', './js/comment.js', "2689097846", time_, str(page)], encoding='utf-8', capture_output=True, text=True, check=True)
    # 获取脚本的输出结果
    output = result.stdout

    pattern = re.compile(r"encText.*?'(.*?)'.*?encSecKey.*?'(.*?)'", re.S)

    result = re.findall(pattern, output)

    data['params'] = result[0][0]
    data['encSecKey'] = result[0][1]
    res = rq.post(url, headers=headers, data=data, verify=False)
    logging.info("歌词获取成功:::")
    # logging.info(res.json()['data']['comments'])

    for item in res.json()['data']['comments']:
        logging.info("评论用户:::" + item['user']['nickname'] + "  评论时间:::" + item['timeStr'] + "    评论内容:::"+item['content'])
    time_ = str(res.json()['data']['comments'][-1]['time'])

🏀三、运行结果

控制台输出展示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8a774bf5ae5d69b7dce87bcd13b9c88f.png)
在这里插入图片描述

🏆四、知识点提示

知识点1:

关键词:扣代码/补环境
需要源码的留言,球球:二三六九四三三零八四
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!!!

相关文章:

  • nodejs、socket.io、express + 实时线上聊天系统(自用笔记)
  • 若依——基于AI+若依框架的实战项目(实战篇(下))
  • 大模型中的参数规模与显卡匹配
  • forms实现俄罗斯方块
  • 什么是数据仓库
  • 从效率瓶颈到智能飞跃:AI工具如何重塑 Java开发模式
  • 敏捷开发:以人为本的高效开发模式
  • Dify工作流中如何去除deepseek-r1思考内容
  • html+css+js 实现一个贪吃蛇小游戏
  • TypeScript String:深入理解与使用
  • uniapp开发app 上传视频切片上传
  • 基于51单片机的智能停车场proteus仿真
  • IM基本设计思路与有序ID的重要性
  • 关税核爆72小时!跨境矩阵防御战紧急打响
  • ACF导电粒子聚集问题阐述及依据聚集位置制定规避措施
  • 生物化学笔记:医学免疫学原理12 黏膜免疫系统 + 抗原性物质含片(“糖丸”的原理)免疫调节
  • 1g内存电脑sqlite能支持多少并发
  • Android Java 实现事件总线
  • 【ubuntu24.04】挂载windows的共享文件夹
  • 软件工程面试题(二十二)