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

Python获取网易云音乐的评论

图片

代码

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import jsondef get_auction_detail():# 1. 采集页面并保存html(如已有可跳过)chrome_options = Options()chrome_options.add_argument('--disable-gpu')chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--disable-dev-shm-usage')chrome_options.add_argument('--disable-blink-features=AutomationControlled')chrome_options.add_argument('--disable-extensions')chrome_options.add_argument('--ignore-certificate-errors')chrome_options.add_argument('--window-size=1920,1080')chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36')# 启用性能日志chrome_options.set_capability('goog:loggingPrefs', {'performance': 'ALL'})try:print("正在初始化Chrome驱动...")service = Service(ChromeDriverManager().install())driver = webdriver.Chrome(service=service, options=chrome_options)print("Chrome驱动初始化成功")# 启用网络请求监听driver.execute_cdp_cmd('Network.enable', {})# 存储评论API的响应comment_responses = []print("访问网易歌曲...")driver.get("https://music.163.com/#/song?id=2711475385")# 等待页面加载完成time.sleep(5)# 获取所有网络请求logs = driver.get_log('performance')# 处理网络请求日志for entry in logs:try:log = json.loads(entry['message'])['message']if 'Network.responseReceived' in log['method']:url = log['params']['response']['url']if 'weapi/comment/resource/comments/get' in url:request_id = log['params']['requestId']# 获取响应体response_body = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': request_id})if 'body' in response_body:comment_data = {'url': url,'data': response_body['body']}comment_responses.append(comment_data)print(f"成功捕获评论数据: {url}")except Exception as e:continue# 保存评论数据if comment_responses:with open('comment_data.json', 'w', encoding='utf-8') as f:json.dump(comment_responses, f, ensure_ascii=False, indent=2)print("评论数据已保存到 comment_data.json")else:print("未捕获到评论数据")except Exception as e:print(f"采集页面时发生错误: {e}")finally:try:driver.quit()except:passif __name__ == "__main__":get_auction_detail()

http://www.dtcms.com/a/235585.html

相关文章:

  • Java-前置基础
  • Kafka 入门指南与一键部署
  • S5P6818_驱动篇(24)UART驱动
  • IoT/HCIP实验-4/单片机基础实验(LCD/LED/按键操作/GPIO/EXTI中断服务)
  • untiy 模拟人物在街道走路和跑步
  • Java中==和equals的区别
  • 理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析
  • sklearn 和 pytorch tensorflow什么关系
  • 12.vite,webpack构建工具
  • 【Linux 学习计划】-- 简易版shell编写
  • 刷题记录(7)二叉树
  • 六、【ESP32开发全栈指南:深入解析ESP32 IDF中的WiFi AP模式开发】
  • 欧拉定理和费马定理
  • Gerrit+repo管理git仓库,如果本地有新分支不能执行repo sync来同步远程所有修改,会报错
  • 飞牛使用Docker部署Tailscale 内网穿透教程
  • 【Linux基础知识系列】第十四篇-系统监控与性能优化
  • 校招 Java 面试基础题目解析学习指南含新技术实操要点
  • [特殊字符]解决 “IDEA 登录失败。不支持早于 14.0 的 GitLab 版本” 问题的几种方法
  • 51单片机——计分器
  • 【51单片机】0. 基础软件安装
  • 构建 MCP 服务器:第 2 部分 — 使用资源模板扩展资源
  • [蓝桥杯]采油
  • 影楼精修-AI衣服祛褶皱算法解析
  • Pytorch安装后 如何快速查看经典的网络模型.py文件(例如Alexnet,VGG)(已解决)
  • 中小制造企业的数字化转型,如何控制工业软件应用成本?
  • 中国制造名牌剃须刀:优质之选,情礼佳物
  • SpringCloud学习笔记-3
  • 2025主流智能体Agent终极指南:Manus、OpenManus、MetaGPT、AutoGPT与CrewAI深度横评
  • 服务器数据恢复—服务器raid5阵列崩溃如何恢复数据?
  • 编译原理笔记