news 2026/5/1 9:44:03

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/5/1 6:55:25

微观交通流仿真软件:AIMSUN_(9).公共交通系统仿真

公共交通系统仿真 1. 公共交通系统仿真的重要性 公共交通系统仿真是微观交通流仿真软件中一个非常重要的模块。它能够帮助交通规划师和工程师在虚拟环境中测试和评估不同的公共交通方案&#xff0c;从而优化公共交通系统的运行效率和服务质量。通过仿真&#xff0c;可以模拟公…

作者头像 李华
网站建设 2026/5/1 5:58:26

阅读诗歌:时间的沙漏

456、时间的沙漏——灵遁者时光滑落在掌心&#xff0c; 如同千粒细沙&#xff0c;细腻&#xff0c;温热&#xff0c; 却无法握住一粒—— 它们滑向空虚的深渊&#xff0c; 从不回头。 我们站在沙漏的另一端&#xff0c; 凝视着它们从一瞬到永恒&#xff0c; 眼中是无数个虚无的…

作者头像 李华
网站建设 2026/5/1 7:55:17

从零开始学大模型:RAG、知识库与Embedding详解

文章介绍了大模型技术中的三大核心概念&#xff1a;RAG、知识库和Embedding。当前大模型缺乏特定领域知识&#xff0c;可通过添加知识库解决。Embedding将各类信息转换为向量语言&#xff0c;便于高效检索。RAG(检索、增强、生成)流程让大模型基于外部知识回答问题&#xff0c;…

作者头像 李华
网站建设 2026/5/1 6:50:12

灵遁者:量子基元理论带来的新观点

第二十一章&#xff1a;量子基元理论带来的新观点“量子基元”是理论假设的终极实在&#xff0c;是构建宇宙万物的唯一“砖石”。它并非一个传统意义上的粒子或物体&#xff0c;因此其特点和描述方式需要一套全新的语言。以下是对“量子基元”的核心特点及其描述方式的系统阐述…

作者头像 李华
网站建设 2026/5/1 7:10:36

花边服饰银发红眸者山间近景

随机种子(Seed)&#xff1a;2266176271随机种子(Seed)&#xff1a;3732077196 参数 模型&#xff1a;Nordrin_little&#xff08;诺德琳little&#xff09; 正向提示词&#xff1a; (masterpiece, best quality, high quality, highres, ultra-detailed),short hair,silver hai…

作者头像 李华