news 2026/3/19 17:52:13

dy直播间评论保存插件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
dy直播间评论保存插件


实时检测dy直播间所有用户评论内容,支持转发到服务器

server.py

importuvicornfromfastapiimportFastAPIfromfastapi.middleware.corsimportCORSMiddlewarefrompydanticimportBaseModelfromtypingimportList,Optionalfromdatetimeimportdatetime# 初始化应用app=FastAPI(title="抖音弹幕接收服务")# === 1. 配置跨域 (CORS) ===# 必须配置,否则油猴脚本跨域请求会被拦截app.add_middleware(CORSMiddleware,allow_origins=["*"],# 允许所有来源allow_credentials=True,allow_methods=["*"],allow_headers=["*"],)# === 2. 定义数据模型 (Dict结构) ===# 对应油猴脚本发送的单条数据结构: { "username": "xxx", "content": "xxx" }classCommentSchema(BaseModel):username:strcontent:strts:Optional[int]=None# 接收时间戳(可选)# === 3. 接收接口 ===@app.post("/api/receive_comments")asyncdefreceive_comments(comments:List[CommentSchema]):""" 接收评论列表,FastAPI 会自动将 JSON 解析为对象列表 """now=datetime.now().strftime("%H:%M:%S")ifnotcomments:return{"status":"empty","count":0}print(f"\n[{now}] 收到{len(comments)}条新弹幕:")# 遍历打印,这里已经自动解析为对象了foritemincomments:# 这里实现了你要的“分开处理用户名和内容”print(f" 用户: [{item.username}] 说:{item.content}")return{"status":"success","received_count":len(comments),"timestamp":now}# === 4. 启动入口 ===if__name__=="__main__":# 端口设置为 5000,与脚本对应uvicorn.run(app,host="192.168.2.114",port=8000)

油候脚本

//==UserScript==//@name 抖音直播弹幕采集(Class定位修复版)//@namespace http://tampermonkey.net///@version5.0//@description 使用CSS Class精准定位用户名和内容,彻底修复用户名为空的问题//@author You//@match https://live.douyin.com/*//@grant GM_xmlhttpRequest//@connect*//==/UserScript==(function(){'use strict';//===配置区域===//确保这里的 IP 和端口与你的 Python 服务端一致 const API_URL="http://192.168.2.114:8000/api/receive_comments";//抖音弹幕容器的class(最外层)const CONTAINER_SELECTOR='.NkS2Invn';//===关键修改:根据 HTML 源码提取的精准 Class===//用户名所在的 spanclassconstUSER_NAME_SELECTOR='.v8LY0gZF';//评论内容所在的 spanclassconstCONTENT_SELECTOR='.cL385mHb';//去重缓存池 const dedupCache=new Map();console.log(`%c[系统]采集脚本启动(Class定位模式)...`,"color: green; font-weight: bold");setInterval(()=>{const batchData=[];const now=Date.now();//1.获取所有弹幕行(使用 querySelectorAll 更快)let messageDivs=document.querySelectorAll(CONTAINER_SELECTOR);//2.遍历处理 messageDivs.forEach(div=>{//DOM级去重:如果该行已经发送过,直接跳过if(div.getAttribute('data-sent'))return;try{//===核心修复逻辑===//直接通过class查找用户名和内容,不再依赖位置顺序 let nameEl=div.querySelector(USER_NAME_SELECTOR);let contentEl=div.querySelector(CONTENT_SELECTOR);if(nameEl&&contentEl){let uName=nameEl.innerText.trim();let uContent=contentEl.innerText.trim();//===数据清洗===//1.去除用户名末尾的中文冒号":"或英文冒号":"uName=uName.replace(/[:]$/,'').trim();//2.过滤掉无意义的空数据if(!uName||!uContent)return;//===去重逻辑===let key=uName+"|"+uContent;//检查缓存(30秒内重复则跳过)if(dedupCache.has(key)&&(now-dedupCache.get(key)<30000)){div.setAttribute('data-sent','true');return;}//===加入发送队列===batchData.push({"username":uName,"content":uContent,"ts":now});//更新缓存 dedupCache.set(key,now);div.setAttribute('data-sent','true');}}catch(e){console.error("解析错误:",e);}});//3.发送数据if(batchData.length>0){console.log(`%c[发送]推送 ${batchData.length}条数据`,"color: blue",batchData);GM_xmlhttpRequest({method:"POST",url:API_URL,headers:{"Content-Type":"application/json"},data:JSON.stringify(batchData),onload:(res)=>{if(res.status!==200){console.log("%c[失败] 状态码: "+res.status,"color: red");}},onerror:(err)=>{console.log("%c[网络错误] 连接被拒绝","color: red",err);}});}//定期清理过期的去重缓存for(let[k,t]of dedupCache){if(now-t>35000)dedupCache.delete(k);}},3000);//3秒轮询一次})();

本程序仅供学习参考,不涉及任何版权问题,不对任何平台构成侵权

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 11:08:14

笨人小白的温故知新——排序(2)

这是一个一题多解的博客&#xff01;下面是一道很简单的题&#xff1a; 1177&#xff1a;奇数单增序列 题目描述】 给定一个长度为N&#xff08;不大于500&#xff09;的正整数序列&#xff0c;请将其中的所有奇数取出&#xff0c;并按升序输出。 【输入】 第1行为 N&#xf…

作者头像 李华
网站建设 2026/3/15 14:50:41

学生党必备!2个真正免费降AI率的工具,亲测知网AIGC检测通过

2个实测免费的降AIGC率工具&#xff0c;顺利通过ai率查重&#xff01; AI 检测本身就没有公开算法&#xff0c;降 AI 工具更像黑箱。如果降AI率连一次免费试用都不给&#xff0c;那风险太大了。万一AI率没有降下来&#xff0c;又不能退&#xff0c;少则几元多则几十。 对于学…

作者头像 李华
网站建设 2026/3/15 14:45:43

Function Calling

文章目录Function Calling在大模型中的作用Function Calling在大模型中的作用 扩展模型能力 大模型本身无法直接操作外部系统&#xff08;如数据库、计算工具&#xff09;&#xff0c;但通过调用预设函数&#xff0c;可以完成&#xff1a; 实时数据获取&#xff08;天气、股价…

作者头像 李华
网站建设 2026/3/15 10:44:34

mysql | 环境变量问题及其配置方法详解

前言 当安装 mysql 环境时&#xff0c;没有选择配置环境变量情况下&#xff1a; 直接打开命令提示符&#xff08;cmd&#xff09;窗口运行 mysql 命令&#xff0c;会出现以下报错&#xff1a; ‘mysql’不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。如下…

作者头像 李华
网站建设 2026/3/15 14:44:17

能省一点是一点!这2个免费降AI率的工具,降AI效果也很好!

3个实测免费的降AIGC率工具&#xff0c;顺利通过ai率查重&#xff01; AI 检测本身就没有公开算法&#xff0c;降 AI 工具更像黑箱。如果降AI率连一次免费试用都不给&#xff0c;那风险太大了。万一AI率没有降下来&#xff0c;又不能退&#xff0c;少则几元多则几十。 对于学…

作者头像 李华