某音评论采集代码分析(基于 Playwright)文末附成品下载

一、项目简介

该代码基于 Playwright 自动化框架,通过接管本地 Edge 浏览器,实现对抖音视频评论区的数据采集,并最终导出为 CSV 文件。

相比传统接口抓取方式,本方案采用:

前端 DOM 抓取 + 浏览器自动化

具有更强的稳定性和更低的风控风险。


二、核心功能

该脚本主要实现以下功能:

  • 自动启动或接管 Edge 浏览器(支持复用登录状态)
  • 打开指定抖音视频页面
  • 自动滚动加载评论
  • 解析评论数据(用户名、内容、时间、地区)
  • 去重处理,避免重复采集
  • 导出 CSV 文件

三、整体流程

text 复制代码
启动浏览器 → 打开页面 → 等待评论加载 → 滚动页面 → 采集评论 → 数据解析 → 写入CSV

四、关键模块解析

1️⃣ 浏览器接管(绕过登录限制)

python 复制代码
browser = p.chromium.connect_over_cdp(f"http://localhost:{DEBUG_PORT}")

说明:

  • 使用 CDP(Chrome DevTools Protocol)连接本地 Edge 浏览器
  • 避免 Playwright 自动化浏览器被识别
  • 可复用用户登录状态(非常关键)

配合启动参数:

bash 复制代码
--remote-debugging-port=9222
--user-data-dir=C:\edge-debug

作用:

  • 开启调试端口
  • 保存浏览器用户数据(cookies / 登录信息)

2️⃣ 评论加载检测

python 复制代码
page.locator('[data-e2e="comment-item"]').count()

说明:

  • 通过 DOM 元素判断评论是否加载完成
  • data-e2e="comment-item" 是抖音评论节点标识

3️⃣ 滚动加载机制

python 复制代码
page.mouse.wheel(0, SCROLL_STEP)

说明:

  • 模拟用户滚动页面
  • 触发抖音"懒加载"机制加载更多评论

关键参数:

参数 说明
SCROLL_STEP 每次滚动距离
SCROLL_WAIT 滚动后等待时间
MAX_ROUNDS 最大滚动次数

4️⃣ 评论采集(核心逻辑)

python 复制代码
comments = page.evaluate("""
() => Array.from(document.querySelectorAll('[data-e2e="comment-item"]'))
    .map(el => el.innerText)
""")

说明:

  • 在浏览器中执行 JavaScript
  • 获取所有评论节点的文本内容
  • 直接读取页面渲染数据(无需接口)

5️⃣ 数据去重

python 复制代码
seen = set()
key = user + content

说明:

  • 使用 Set 记录已采集数据
  • 避免重复写入 CSV

6️⃣ 评论解析

python 复制代码
def parse_comment(text):

主要功能:

  • 提取用户名
  • 提取评论内容
  • 提取时间(如:2小时前)
  • 提取地区(如:北京)

使用正则:

python 复制代码
(\d+分钟前|\d+小时前|\d+天前)[· ]([\u4e00-\u9fa5]+)

7️⃣ 子评论展开(可选)

python 复制代码
text=/展开\d+条回复/

说明:

  • 自动点击"展开回复"按钮
  • 采集子评论数据

8️⃣ 结束条件控制

python 复制代码
if current_height == last_height and new_count == 0:

说明:

当满足以下条件时停止采集:

  • 页面高度不再变化
  • 没有新增评论

避免死循环。


9️⃣ 数据导出

python 复制代码
writer.writerow(["用户名", "评论内容", "时间", "地区"])

说明:

  • 使用 CSV 存储结果
  • 编码为 UTF-8(兼容 Excel)

五、方案特点

✅ 优点

  • 无需分析接口(避免签名、加密问题)
  • 使用真实浏览器,降低被封风险
  • 支持登录态,适用于完整评论采集
  • 逻辑清晰,易扩展

⚠️ 注意点

  • 依赖页面 DOM 结构(抖音更新可能影响)
  • 评论解析基于文本规则,存在一定误差
  • 采集速度受页面加载影响

六、适用场景

该方案适用于:

  • 自媒体选题分析(高频评论挖掘)
  • 用户反馈收集
  • 舆情分析
  • 数据集构建

七、总结

该代码实现了一套基于浏览器自动化的评论采集流程,核心思路是:

👉 通过模拟用户行为获取前端渲染数据,而非直接调用接口

这种方式在当前环境下具有较好的稳定性和实用性,适合用于中小规模的数据采集任务。


📦 下载方式

夸克网盘

相关推荐
Chase_______2 小时前
【2026最新保姆级】Python 安装与PyCharm安装配置指南 (Window版)
开发语言·python·pycharm
创世宇图2 小时前
Python跨平台文字转语音:调用系统原生引擎实现实时朗读
python
第一程序员2 小时前
GitHub Copilot:Python开发者的AI助手
开发语言·python·github
2401_873544922 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
文艺倾年2 小时前
【2026持续更新】OpenClaw + OpenCode/Claude + CoWork + 源码讲解百万字教程
人工智能·python
axinawang2 小时前
正则表达式
爬虫·python
qq_148115372 小时前
将Python Web应用部署到服务器(Docker + Nginx)
jvm·数据库·python
JaydenAI2 小时前
[RAG在LangChain中的实现]根据数据格式选择文档加载器和文本分割器
python·langchain·ai编程
KIHU快狐2 小时前
KIHU快狐|49寸户外液晶显示器2500亮度智能调光加油站业务办理屏
python·计算机外设