基于Python的舆情监控分析与预测系统:从数据采集到可视化预警
简介这是一套基于Python实现的舆情监控分析与预测系统完整源码包面向计算机、电子信息工程、数学等专业的大学生适用于课程设计、期末大作业或毕业设计参考也可作为数据分析与可视化方向的实战练习项目。压缩包共118个文件约45.23MB包含27个py源码文件、36个txt说明与数据文件、12个jar及10个class等Java组件、7个java文件、6个xml配置、2个ipynb笔记本、1个xlsx数据集和若干json、md文档覆盖数据采集、文本处理、情感分析、图表展示等模块。内容预览可见柱状图、饼图、界面初始化及NLP相关类说明系统兼具可视化界面与自然语言处理能力。该资源经导师指导并获98分认可已有361人学习适合需要完整项目结构、可运行代码与配套数据集的学习者参考借鉴。1. 舆情监控系统到底在监控什么从一条负评到一张趋势图一条负评出现在某个公开讨论区两小时后被转进三个社群第二天早上变成搜索框里的联想词——这个过程里真正值得盯住的不是那条评论本身而是它扩散的斜率。基于 Python 实现的舆情监控分析与预测系统干的就是把这种「斜率」变成可量化、可回看、可预警的东西。它适合两类人一类是手里已经有一批公开文本数据、想搭一套能跑起来的分析流水线的开发者另一类是需要在本地复现一套完整链路、从采集清洗一路做到可视化与趋势预测的学生或研究者。标题里带数据集和可视化意味着这套东西不是空壳而是有输入、有中间产物、有最终图表出口的闭环。下面按「数据怎么进来、特征怎么算、模型怎么选、图怎么画、坑在哪」的顺序拆开讲每一步都给到能直接抄的代码和参数。2. 数据管道从原始文本到可建模的舆情样本2.1 数据集长什么样先做字段体检拿到一份舆情数据集第一件事不是急着建模而是把字段结构摸清楚。常见做法是至少包含时间戳、文本内容、来源渠道、互动量点赞/转发/评论这几列有的还会带情感标签或主题标签。先跑一段体检脚本看缺失率、时间跨度、文本长度分布这三项直接决定后面清洗策略。import pandas as pd # 读取数据集常见格式为 csv 或 xlsx df pd.read_csv(opinion_data.csv, encodingutf-8) # 字段体检缺失率、时间范围、文本长度 print(字段列表:, df.columns.tolist()) print(缺失率:\n, df.isnull().mean().round(4)) print(时间范围:, df[timestamp].min(), -, df[timestamp].max()) # 文本长度分布判断是否需要截断 df[text_len] df[content].astype(str).str.len() print(df[text_len].describe())这段代码的逻辑是先确认列名对不对再算每列缺失比例最后看文本长度。参数上encoding要跟文件实际编码一致中文数据常见 utf-8 和 gbk 两种读出来乱码就换。text_len的 describe 结果里如果 75 分位超过 512后面做向量化时就要考虑截断否则显存或内存会吃不消。时间范围决定你能不能做按天聚合的趋势图跨度太短比如只有三天就不适合做预测只能做描述性分析。2.2 清洗与去重三个必须处理的脏数据形态舆情数据最脏的地方集中在三类重复转发、广告灌水、纯符号无意义文本。重复转发会让某条内容的热度虚高广告灌水会污染情感判断纯符号文本会让分词器报错。处理顺序建议先去重、再过滤、最后做长度截断。import re def clean_text(text): text str(text) # 去掉 URL 和 提及这两类对情感判断贡献极低 text re.sub(rhttp\S|www\.\S, , text) text re.sub(r\w, , text) # 只保留中文、英文、数字和基本标点 text re.sub(r[^\u4e00-\u9fa5a-zA-Z0-9。、], , text) # 压缩连续空格 text re.sub(r\s, , text).strip() return text df[clean_content] df[content].apply(clean_text) # 去重完全相同的文本只保留最早一条 df df.sort_values(timestamp).drop_duplicates(subset[clean_content], keepfirst) # 过滤长度小于 5 的短文本 df df[df[clean_content].str.len() 5] print(清洗后样本量:, len(df))clean_text里那条正则[^\u4e00-\u9fa5a-zA-Z0-9。、]是关键它把表情符号、特殊字符全部替换成空格避免后续分词器遇到未知字符抛异常。去重时用keepfirst配合时间排序保留最早出现的那条这样热度统计不会因为重复转发而失真。长度阈值设 5 是个经验值低于 5 个字的文本基本没有分析价值设太高又会误杀「太差了」这种短而有效的负评。2.3 中文分词与停用词jieba 的三种加载模式中文舆情分析绕不开分词。jieba 提供三种模式精确模式、全模式、搜索引擎模式。舆情场景我一般用搜索引擎模式因为它会把长词再切出短词召回率更高适合后面做关键词提取。import jieba import jieba.analyse # 加载自定义词典把领域词加进去避免被切碎 jieba.load_userdict(domain_dict.txt) # 每行一个词可带词频 # 搜索引擎模式分词 def cut_words(text): return jieba.lcut_for_search(text) df[words] df[clean_content].apply(cut_words) # 加载停用词表 with open(stopwords.txt, encodingutf-8) as f: stopwords set(line.strip() for line in f) df[words_filtered] df[words].apply( lambda ws: [w for w in ws if w not in stopwords and len(w) 1] ) print(df[words_filtered].head(3))load_userdict加载的自定义词典是提升分词质量最有效的手段把「退款流程」「客服响应」这类领域短语加进去能避免被切成「退款」「流程」两个词。停用词表里除了「的」「了」「是」这类通用词还要加上本数据集里高频但无意义的词比如平台名、固定话题标签。len(w) 1过滤掉单字单字在舆情分析里噪声太大。3. 情感分析与主题提取把文本变成可计算的指标3.1 情感打分SnowNLP 与规则词典的取舍情感分析有两条路一条是用 SnowNLP 这类现成库直接出 0 到 1 的情感分另一条是自建情感词典做加权打分。前者上手快后者可控性强。舆情监控里我一般先用 SnowNLP 跑一版基线再用词典法做校正因为 SnowNLP 在反讽和双重否定上容易翻车。from snownlp import SnowNLP def sentiment_score(text): try: return SnowNLP(text).sentiments # 返回 0~1越接近 1 越正面 except Exception: return 0.5 # 异常时给中性值避免整条流水线中断 df[sentiment] df[clean_content].apply(sentiment_score) # 按天聚合平均情感分 df[date] pd.to_datetime(df[timestamp]).dt.date daily_sentiment df.groupby(date)[sentiment].mean() print(daily_sentiment.tail())sentiments返回的是概率值0.5 附近代表中性。异常处理里返回 0.5 是个兜底策略防止某条文本让整个 apply 中断。按天聚合后的daily_sentiment就是趋势图的纵轴数据。这里要注意SnowNLP 对长文本的判断会偏向中性因为它是按整句概率累乘的文本越长越容易趋近 0.5所以如果数据里长文本多建议先分句再取平均。3.2 关键词提取TF-IDF 与 TextRank 的适用边界关键词提取用来回答「大家在讨论什么」。TF-IDF 偏向高频且独特的词TextRank 偏向在共现网络里中心性高的词。舆情场景里TF-IDF 适合找突发话题TextRank 适合找核心议题。import jieba.analyse # TF-IDF 提取 Top20 关键词 tfidf_kw jieba.analyse.extract_tags( .join(df[clean_content].tolist()), topK20, withWeightTrue ) # TextRank 提取 Top20 关键词 textrank_kw jieba.analyse.textrank( .join(df[clean_content].tolist()), topK20, withWeightTrue ) print(TF-IDF:, tfidf_kw[:10]) print(TextRank:, textrank_kw[:10])extract_tags的withWeightTrue会返回权重方便后面做词云时按权重调字号。topK设 20 是个平衡值太少看不出主题分布太多会混入噪声词。两个方法的结果可以取交集交集词往往是既高频又核心的议题词适合放进预警规则里。3.3 主题聚类LDA 的 topic 数怎么定当关键词不足以概括议题时用 LDA 做主题聚类。LDA 最大的坑是 topic 数拍脑袋定。我的做法是先跑 2 到 10 个 topic看困惑度perplexity曲线的拐点再结合人工可解释性定最终值。from sklearn.feature_extraction.text import CountVectorizer from sklearn.decomposition import LatentDirichletAllocation # 构建词频矩阵限制最大特征数和文档频率 vectorizer CountVectorizer( max_features2000, max_df0.8, # 出现在 80% 以上文档的词丢掉 min_df5 # 出现在少于 5 篇文档的词丢掉 ) doc_term vectorizer.fit_transform(df[clean_content]) # 跑多个 topic 数看困惑度 for n in [3, 5, 7, 10]: lda LatentDirichletAllocation(n_componentsn, random_state42, max_iter20) lda.fit(doc_term) print(ftopic{n}, perplexity{lda.perplexity(doc_term):.2f})max_df0.8和min_df5是过滤极端词的常用组合前者去掉「今天」「大家」这类几乎每篇都有的词后者去掉只出现一两次的生僻词。困惑度越低越好但不要只看数值还要把每个 topic 的 top 词打印出来人工判断是否可解释。random_state42固定随机种子保证每次跑结果一致方便复现。4. 趋势预测与可视化从历史曲线到未来三天4.1 时间序列建模ARIMA 的阶数怎么选舆情热度按天聚合后就是一条时间序列。ARIMA 是最常用的基线模型难点在 p、d、q 三个阶数的确定。d 看差分次数p 和 q 看自相关和偏自相关图。import pandas as pd from statsmodels.tsa.arima.model import ARIMA # 构造热度序列每天文本量 daily_count df.groupby(date).size().reset_index(namecount) daily_count[date] pd.to_datetime(daily_count[date]) series daily_count.set_index(date)[count] # 一阶差分看平稳性 diff series.diff().dropna() print(差分后均值:, diff.mean().round(4), 方差:, diff.var().round(4)) # 拟合 ARIMA(1,1,1) 作为基线 model ARIMA(series, order(1, 1, 1)) result model.fit() print(result.summary()) # 预测未来 3 天 forecast result.forecast(steps3) print(未来三天预测:, forecast.values)order(1,1,1)里的三个参数分别是 AR 阶数、差分次数、MA 阶数。差分后方差明显变小说明 d1 合适。forecast(steps3)输出未来三天的点预测实际用的时候还要看置信区间result.get_forecast(steps3).conf_int()能拿到上下界。舆情数据波动大ARIMA 适合做短期基线超过一周的预测误差会明显放大。4.2 可视化情感趋势与关键词词云可视化分两块一块是时间维度的情感和热度曲线一块是关键词词云。曲线用 matplotlib词云用 wordcloud中文字体要单独指定否则会显示成方块。import matplotlib.pyplot as plt from wordcloud import WordCloud plt.rcParams[font.sans-serif] [SimHei] # 指定中文字体 plt.rcParams[axes.unicode_minus] False fig, ax1 plt.subplots(figsize(12, 5)) ax1.plot(daily_sentiment.index, daily_sentiment.values, colortab:blue, label情感均值) ax1.set_ylabel(情感分, colortab:blue) ax1.tick_params(axisy, labelcolortab:blue) ax2 ax1.twinx() ax2.bar(daily_count[date], daily_count[count], alpha0.3, colortab:orange, label文本量) ax2.set_ylabel(文本量, colortab:orange) plt.title(舆情情感与热度趋势) plt.tight_layout() plt.savefig(trend.png, dpi150) # 词云 word_freq dict(tfidf_kw) wc WordCloud( font_pathSimHei.ttf, width800, height400, background_colorwhite ).generate_from_frequencies(word_freq) wc.to_file(wordcloud.png)font.sans-serif设成 SimHei 是解决中文乱码的关键Linux 环境下如果没有这个字体要换成系统里实际存在的中文字体路径。双轴图里左轴画情感曲线、右轴画文本量柱状图能直观看出「热度涨但情感跌」这种危险信号。词云的generate_from_frequencies直接吃 TF-IDF 的权重字典字号自动按权重分配。4.3 预警规则把阈值写成可配置的字典预警不要硬编码在代码里抽成一个配置字典方便调整。常见规则有三条单日负评比例超过阈值、情感均值连续下降、关键词突增。ALERT_RULES { negative_ratio: 0.4, # 负评占比超过 40% 触发 sentiment_drop_days: 3, # 情感连续下降 3 天触发 keyword_spike: 3.0 # 某关键词出现频率是均值 3 倍触发 } def check_alerts(daily_df, sentiment_series): alerts [] neg_ratio (daily_df[sentiment] 0.3).mean() if neg_ratio ALERT_RULES[negative_ratio]: alerts.append(f负评占比 {neg_ratio:.2%} 超阈值) # 连续下降判断 recent sentiment_series.tail(ALERT_RULES[sentiment_drop_days] 1) if all(recent.diff().dropna() 0): alerts.append(情感连续下降) return alertsnegative_ratio设 0.4 是经验值低于 0.3 的情感分算负评。连续下降判断用diff()看每天的变化量是否都为负。这套规则的好处是阈值集中管理改一个数字就能调整灵敏度不用翻代码。5. 避坑与排查五个让流水线跑不通的典型问题5.1 中文乱码编码不一致导致读取失败现象是读进来的文本全是问号或方块。原因是文件编码和read_csv的encoding参数不匹配。解决办法是先探测编码用chardet检测后再读或者直接试 utf-8 和 gbk 两种哪个不乱码用哪个。写文件时统一用encodingutf-8-sig带 BOM 头Excel 打开不乱码。5.2 分词结果全是单字自定义词典没加载成功现象是「退款流程」被切成「退」「款」「流」「程」。原因是load_userdict的路径不对或者词典文件编码不是 utf-8。解决办法是打印jieba.lcut(退款流程)验证如果还是单字检查词典文件每行格式是否为「词 词频 词性」最简单的格式是每行一个词。加载后要重新初始化分词器或者把load_userdict放在所有分词操作之前。5.3 情感分全是 0.5SnowNLP 遇到空文本或纯符号现象是大量文本情感分卡在 0.5。原因是清洗不彻底传入了空字符串或纯符号。解决办法是在sentiment_score里加长度判断len(text.strip()) 2直接返回 0.5 并跳过。另外 SnowNLP 对繁体中文支持差如果数据里有繁体要先做简繁转换。5.4 ARIMA 报错「矩阵奇异」序列太短或全为常数现象是model.fit()抛 LinAlgError。原因是序列长度不够少于 10 个点或者值几乎不变。解决办法是先检查series.nunique()如果小于 3 就没法建模改用移动平均做平滑展示。序列太短就降低阶数用order(0,1,0)即一阶差分当基线。5.5 词云中文显示方块字体路径没指定或字体不存在现象是词云图里中文全是方框。原因是font_path没设或指向的字体文件不存在。解决办法是在系统里找中文字体Linux 下常见路径是/usr/share/fonts/下Windows 下是C:/Windows/Fonts/simhei.ttf。设完路径后先用os.path.exists验证文件存在再传给 WordCloud。6. 把预测结果接回业务一个可复用的日报生成技巧前面五章把数据管道、情感分析、主题提取、趋势预测和可视化都跑通了最后一章讲怎么把这些串成一个每天自动跑的日报。核心思路是把所有中间结果落成文件再用模板拼装这样任何一步出问题都能单独重跑不用整条链路重来。我一般会建一个output/目录按日期分子目录存当天的清洗数据、情感聚合、关键词和图表。日报正文用字符串模板生成关键指标用 f-string 填进去。下面是一个最小可用的日报生成脚本。import os from datetime import date def generate_daily_report(target_date, daily_sentiment, daily_count, keywords, alerts): report_dir foutput/{target_date} os.makedirs(report_dir, exist_okTrue) # 落盘中间结果方便回溯 daily_sentiment.to_csv(f{report_dir}/sentiment.csv) daily_count.to_csv(f{report_dir}/count.csv, indexFalse) # 拼装日报正文 avg_sent daily_sentiment.loc[target_date] if target_date in daily_sentiment.index else 0.5 total daily_count[daily_count[date] target_date][count].sum() top_kw 、.join([w for w, _ in keywords[:5]]) report f舆情日报 {target_date} 样本总量{total} 平均情感分{avg_sent:.3f} 高频关键词{top_kw} 预警信息{.join(alerts) if alerts else 无} with open(f{report_dir}/report.txt, w, encodingutf-8) as f: f.write(report) return report # 调用示例 today date.today() print(generate_daily_report(today, daily_sentiment, daily_count, tfidf_kw, [负评占比超阈值]))这段脚本的关键设计是「先落盘、再拼装」。daily_sentiment.to_csv和daily_count.to_csv把中间结果存下来后面如果要查某天的原始数据直接读 csv 就行不用重跑整个流水线。日报正文用 f-string 拼avg_sent用.3f保留三位小数避免输出一长串浮点数。alerts为空时输出「无」保证格式统一。参数上target_date建议用datetime.date对象而不是字符串这样和 pandas 的日期索引能直接对齐。如果数据里时间戳带时区要先统一转成同一时区再取 date否则跨天聚合会错位。top_kw取前 5 个词太多会撑爆一行太少又看不出主题。进阶用法有两个方向。一是把日报生成挂到定时任务上每天固定时间跑一次输出目录按日期归档一个月后就能回看整月的情感走势。二是把预警规则和日报结合当alerts非空时在日报标题前加一个标记方便快速筛选出需要人工介入的日子。我自己的习惯是每周回看一次预警记录把误报的规则阈值调一调跑上一个月阈值基本就贴合自己的数据分布了。血泪经验是不要等到所有模块都完美了才串流水线。先把清洗、情感、日报这三步跑通哪怕预测模块还是空的日报里先放情感和关键词也能用起来。后面再逐步把 ARIMA 预测和词云加进去每加一个模块就单独验证一次输出比一次性全串起来再调试省太多时间。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

从原始点云到目标簇:PCL点云预处理实战全流程

从原始点云到目标簇:PCL点云预处理实战全流程

课题定下来那天,我的第一反应不是兴奋,是懵。"6DOF物体识别及抓取"——这九个字拆开我都认识,合在一起完全不知道先从哪儿下手。硬着头皮啃了几天论文,发现这个题目本质上就是把两件事串起来:先用传感器看清…

2026/10/13 20:07:05 阅读更多 →
STM32F107裸机LWIP移植实战:从PHY初始化到80Mbps吞吐调优

STM32F107裸机LWIP移植实战:从PHY初始化到80Mbps吞吐调优

简介:这份资源是面向嵌入式开发者的STM32F107平台LWIP协议栈移植范例,适合已掌握C语言与STM32基础、希望打通以太网通信的工程师和学生。内容围绕轻量级TCP/IP协议栈在Cortex-M3微控制器上的整合展开,涉及协议栈架构、以太网MAC驱动、RTOS集成…

2026/10/13 20:07:05 阅读更多 →
AI-First 前端脚手架演进:从零构建集成 Claude Code 的组件自动化生成套件

AI-First 前端脚手架演进:从零构建集成 Claude Code 的组件自动化生成套件

在前端工程化体系的发展历程中,脚手架工具(Scaffolding CLI) 始终是团队规范落地的先锋官。从早期的 Yeoman、vue-cli,到如今轻快的 create-vite 以及各大厂自研的企业级脚手架,它们的核心逻辑十年如一日地停留在同一个…

2026/10/13 20:06:04 阅读更多 →

最新新闻

React脚手架原理与选型指南:从Vite到工程化落地

React脚手架原理与选型指南:从Vite到工程化落地

聊到React项目的起步阶段,脚手架这几个字几乎每次都会被摆上台面。它不是一个简单的配置文件,而是把一整套前端工程化底座直接端到你面前:开发服务器、热更新、构建打包、代码规范、环境变量管理,这些原本要折腾一周的事情&#x…

2026/10/13 21:58:43 阅读更多 →
Agent Skill实战指南:从零构建可复用的AI助手能力模块

Agent Skill实战指南:从零构建可复用的AI助手能力模块

1. 从"每次都要重新教"说起:Agent Skill到底在解决什么如果你用过任何一款AI助手,大概率经历过这样的场景:你花十分钟跟它解释"帮我整理会议纪要时,要按项目分组,每个项目下列出待办事项、负责人和截止…

2026/10/13 21:58:43 阅读更多 →
React脚手架深度解析:从CRA到Vite的工程化进阶与踩坑指南

React脚手架深度解析:从CRA到Vite的工程化进阶与踩坑指南

做前端的,几乎没人能绕开脚手架上手这道坎。最近带了个新人,第一天问他环境起来没有,他说“起好了,但不知道起好了啥”。这个回答其实特别真实,因为现在跑一条npx create-react-app my-app,几十秒后一个能跑…

2026/10/13 21:58:43 阅读更多 →
基于Spring Boot的交通事故档案管理系统设计与实现

基于Spring Boot的交通事故档案管理系统设计与实现

1. 项目定位与整体架构设计拆解1.1 为什么选Java Springboot做档案管理系统先聊点实在的。很多同学做毕业设计,第一反应是选个看起来“高级”的技术栈,比如Python的Django、Flask,或者Node.js的Express。但我个人见过太多案例,最…

2026/10/13 21:58:43 阅读更多 →
英语学习真的需要思考:从机械记忆到深度认知的进阶方法

英语学习真的需要思考:从机械记忆到深度认知的进阶方法

我们先说句实话:我见过太多人把英语学成了“体力活”。单词书翻烂了三本,语法题刷了上千道,朗读打卡坚持了一年,结果遇到老外还是张不开嘴,读文章还是逐字翻译。问题出在哪?不是不努力,而是努力…

2026/10/13 21:58:43 阅读更多 →
从AtCoder一题看浮点数精度陷阱与整数解法

从AtCoder一题看浮点数精度陷阱与整数解法

做题时间长了以后,我越来越确信一件事:真正让人当场翻车的,往往不是那些看半天都没思路的难题,而是所有步骤都“看起来没问题”的简单题。AtCoder Beginner Contest 169 的 C 题 Multiplication 3,就是一个摆在台面上的…

2026/10/13 21:57:43 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →