当前位置: 首页 > 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()

相关文章:

  • 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. 基础软件安装
  • 网站建设 目标/晚上国网app
  • 做网站卖什么发财/北京互联网公司
  • 洛阳网站seo/站长工具果冻传媒
  • 京东网站建设策略/微信怎么做推广
  • 湘西州住房和城乡建设局网站/济南网站建设方案
  • 云南做网站报价/国际军事新闻最新消息