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

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秒轮询一次})();

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

http://www.cnnetsun.cn/news/167864.html

相关文章:

  • 软件解耦与扩展:插件式开发方式(基于 C++ 与 C# 的实现)
  • 免费降AI率的工具红黑榜:认准这2个免费降AI率工具,亲测有效!
  • 霍华德·马克斯的市场周期定位技巧
  • 1500字免费降AIGC率的额度,2026年毕业论文查重必备!
  • 1500字免费降AIGC率的额度,2026年毕业论文查重必备!(附每天5次aigc查重)
  • 别再焦虑了!6款实测有效的降ai工具推荐,学姐手把手教你降低ai率!
  • 国外软件,安装即时专业版!
  • 防控近视你需要知道的这些科普常识!
  • 抽奖机随机号码生成:3 种算法实现 + 测试全解析(附完整代码)
  • LLM入门指南:预训练、SFT和强化学习三步构建ChatGPT式大模型
  • LangChain v1.0 Runtime深度解析:构建可测试、可复用的大模型智能体
  • 信息与关系:涌现的三大核心原则
  • c++狼人杀
  • 50天50个小项目 (React19 + Tailwindcss V4) ✨ | DrawingApp(画板组件)
  • 使用自定义注解校验请求参数
  • 敢不敢用一年时间读完这12本书,模型入门必看的12本书!建议收藏!!
  • 对比:Qwen-VL与传统的CNN在图像处理应用
  • 【硬件设计】DC12V输入的防护+滤波设计
  • 快!太快了!一键生成!一键导出!微信自动统计数据报表来了!
  • 智能决策系统日志系统设计:AI架构师的调试与分析技巧
  • 力扣 11.盛最多水的容器 简单的双指针算法 题解
  • 深度学习驱动的论文降重工具有效规避查重风险,智能改写段落
  • 温度传感器PT1000与NTC10K介绍
  • 震惊!这家酶制剂供应商竟让行业炸锅
  • 数学建模与排版无忧?这10个AI论文工具精准解决复现难题
  • AI对打工人的三个影响
  • 小程序/APP接入分账系统:4大核心注意事项,避开合规与技术坑
  • 靠谱的厦门考研公司哪个好
  • 二叉搜索树的最近公共祖先:别再蛮力了,用规则思维找“血缘关系”
  • 推荐6个AI论文网站,提供降重与自然改写功能避免标红