Python网络舆情分析系统实战:从环境搭建到二次开发全指南
简介这是一套基于Python的网络舆情分析系统完整项目面向计算机相关专业的本科毕业生及课程设计学习者可用于毕业设计、课程设计或自学实践帮助解决选题难、代码不完整、部署无头绪等常见问题。压缩包共287个文件约75.63MB涵盖42个py源码、34个js脚本、15个css样式、12个html页面及数据库sql脚本另含gif演示、jpg截图与模型pb文件等前后端代码与数据库脚本齐备。项目基于Python 3.7或3.8开发推荐PyCharm导入配合MySQL与Navicat管理数据pip安装依赖并配置数据库密码后即可运行界面美观、功能完善、管理便捷。已有124人学习关注。读者可获得可直接运行的完整源码、数据库脚本、部署说明与排错思路目录结构清晰便于二次开发与论文撰写具有较高的实际应用与参考价值。1. 从一份能跑起来的 Python 网络舆情分析系统说起如果你正在为毕业设计选题发愁或者手头已经有一个网络舆情分析系统的题目却不知道从哪下手这份基于 Python 的完整项目大概率能帮你省掉两周的摸索时间。它不是那种只丢给你几个 py 文件、跑起来一堆报错的半成品而是把源码、数据库脚本、依赖工具都打包好了导入 PyCharm、配好 MySQL 密码就能 run 起来的那种。系统本身做的是舆情数据的采集、存储、分析和可视化展示后台用 Python 写前端是 layui 那一套页面数据库走 MySQL整体技术栈对计算机专业的同学来说门槛不高但功能闭环是完整的——从数据进库到图表出结果一条链路都通。适合谁一是拿它当毕业设计底稿、需要在此基础上改功能写论文的人二是想找一个前后端都齐全的 Python 项目练手、顺便把数据库增删改查和 Web 开发串一遍的人。下面我按这东西怎么落地的顺序把部署、改代码、避坑、进阶几个环节拆开讲。2. 环境搭建与项目导入把黑匣子变成能调试的工程2.1 为什么锁定 Python 3.7/3.8 而不是追新拿到一个 Python 项目第一反应不该是我装个最新版 3.12 试试而是先看它依赖的库对解释器版本的要求。这份项目建议用 3.7 或 3.8不是随便写的。舆情分析系统通常会用到 requests 做采集、jieba 做中文分词、pandas 做数据处理、可能还有 Flask 或 Django 做 Web 层这些库在 3.7/3.8 上的兼容性经过大量项目验证而 3.10 以后部分老版本库的 C 扩展编译会出问题尤其是 Windows 环境下没有预编译 wheel 的时候pip 会直接尝试源码编译然后卡在缺少 Visual C Build Tools 上。我一般会建议用 conda 建一个独立环境把版本钉死避免污染系统 Python。# 用 conda 创建 3.8 环境环境名自取 conda create -n yuqing python3.8 conda activate yuqing # 确认版本 python --version # 输出应为 Python 3.8.x逻辑说明conda create -n的-n后面跟环境名python3.8指定解释器版本。激活后所有 pip 安装都只影响这个环境删掉环境就干净了。如果你不用 conda用 venv 也行但 venv 不管理 Python 版本本身你得先确保系统里装了 3.8。参数说明环境名建议用英文别用中文或空格否则后续命令行激活容易出玄学问题。如果你机器上已经有多个 Pythonpython --version一定要在激活环境后执行确认当前指向的是 3.8 而不是系统的 3.11。2.2 PyCharm 导入与依赖安装的完整动作用 PyCharm 导入项目关键动作有三个选对解释器、装依赖、配数据库连接。很多人翻车在第一步——PyCharm 默认可能用系统解释器而不是你刚建的 conda 环境。操作步骤打开 PyCharm选择File - Open定位到解压后的项目根目录不要进到子文件夹里。进入File - Settings - Project - Python Interpreter点齿轮选Add选Conda Environment找到你刚建的yuqing环境。确认解释器路径指向envs/yuqing/python.exeWindows或envs/yuqing/bin/pythonMac/Linux。打开 PyCharm 底部的 Terminal确认前面有(yuqing)前缀然后装依赖。# 如果项目根目录有 requirements.txt直接批量装 pip install -r requirements.txt # 如果没有 requirements.txt按常见依赖手动装 pip install flask requests jieba pandas pymysql逻辑说明pip install -r requirements.txt会逐行读取依赖并安装这是最省事的方式。如果项目没提供这个文件就得根据 import 语句反推。舆情系统最常见的组合就是 Web 框架 采集 分词 数据处理 数据库驱动上面那行覆盖了大部分场景。参数说明pymysql是 MySQL 的 Python 驱动如果你看到代码里写的是mysqlclient或MySQLdb那就得换成pip install mysqlclient但后者在 Windows 上编译更麻烦很多项目会改用 pymysql 并在代码里做兼容。装完后在 Python 交互环境里import pymysql不报错就说明驱动就位了。提示如果 pip 下载慢可以临时指定国内镜像源加-i https://pypi.tuna.tsinghua.edu.cn/simple但别把镜像源写死到配置文件里换网络环境时容易失效。2.3 数据库脚本导入与连接配置项目里一般会有一个.sql文件这就是数据库脚本。用 Navicat 连接本地 MySQL 后新建一个数据库字符集选utf8mb4然后运行 SQL 文件导入表结构和初始数据。-- 新建数据库名字按项目配置来常见是 yuqing 或 news CREATE DATABASE yuqing DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 导入后检查表是否齐全 USE yuqing; SHOW TABLES;逻辑说明utf8mb4比utf8多支持 emoji 和部分生僻字舆情数据里经常有表情符号用utf8会插入失败或乱码。SHOW TABLES用来确认脚本执行成功正常应该看到用户表、舆情数据表、分析结果表等若干张。参数说明数据库名、用户名、密码要和项目配置文件里的一致。配置文件通常是config.py、settings.py或application.yml这类里面会有DB_HOST、DB_USER、DB_PASSWORD、DB_NAME几个字段。把DB_PASSWORD改成你本地 MySQL 的密码DB_NAME改成你刚建的库名。改完保存回 PyCharm 点运行。如果 run 之后报Access denied for user就是密码不对报Unknown database就是库名不对或没建库报Table doesnt exist就是 SQL 脚本没导入完整。这三个错误覆盖了八成启动失败的情况。3. 核心功能拆解舆情数据从采集到可视化的链路3.1 数据采集模块的代码结构与改写点舆情系统的数据来源通常是新闻网站、论坛或公开 API。项目里的采集代码一般放在spider或crawler目录下核心逻辑是发请求、解析 HTML、提取字段、存库。import requests from bs4 import BeautifulSoup import pymysql # 建立数据库连接 conn pymysql.connect( hostlocalhost, userroot, password你的密码, databaseyuqing, charsetutf8mb4 ) cursor conn.cursor() # 采集单页数据 url https://example.com/news headers {User-Agent: Mozilla/5.0} resp requests.get(url, headersheaders, timeout10) soup BeautifulSoup(resp.text, html.parser) # 解析标题和内容选择器按实际页面结构调整 for item in soup.select(.news-item): title item.select_one(.title).get_text(stripTrue) content item.select_one(.content).get_text(stripTrue) # 插入数据库 cursor.execute( INSERT INTO news (title, content) VALUES (%s, %s), (title, content) ) conn.commit() cursor.close() conn.close()逻辑说明requests.get发请求headers里的 User-Agent 是为了让服务器认为这是浏览器访问不加很多站点直接返回 403。BeautifulSoup解析 HTMLselect用 CSS 选择器定位元素具体选择器要按目标页面的实际结构改。cursor.execute执行插入%s是占位符pymysql 会自动转义不要用字符串拼接否则有 SQL 注入风险。最后commit提交事务不 commit 数据不会真正写入。参数说明timeout10是请求超时时间单位秒设太短容易误判失败设太长卡住整个采集流程。charsetutf8mb4要和建库时一致。如果你要采集多个页面把 URL 放进列表循环并在每次请求之间加time.sleep(1)避免请求过密被目标站点限制。注意采集行为要遵守目标网站的 robots.txt 和相关规定只采集公开数据控制频率不要对目标站点造成压力。这部分是工程伦理底线不是可选项。3.2 中文分词与情感分析的实现方式舆情分析的核心价值在于从文本里提取出倾向性。常见做法是用 jieba 分词再配合情感词典或朴素贝叶斯分类器判断正负面。import jieba import jieba.analyse text 这个政策出台后群众反响热烈大家都很满意 # 提取关键词topK 控制返回数量 keywords jieba.analyse.extract_tags(text, topK5) print(keywords) # 简单情感判断基于正负词典计数 positive_words [满意, 热烈, 支持, 好评] negative_words [不满, 反对, 差评, 愤怒] pos_count sum(1 for w in jieba.cut(text) if w in positive_words) neg_count sum(1 for w in jieba.cut(text) if w in negative_words) if pos_count neg_count: print(正面) elif neg_count pos_count: print(负面) else: print(中性)逻辑说明jieba.analyse.extract_tags基于 TF-IDF 算法提取关键词topK控制返回数量。情感判断这里用的是最简单的词典计数法适合毕业设计场景逻辑透明、容易解释。jieba.cut返回分词结果遍历后统计正负词出现次数比较大小得出倾向。参数说明topK5表示取权重最高的 5 个词数值越大返回越多。词典法的准确率取决于词典覆盖度你可以根据舆情领域扩充正负词表比如加入行业术语。如果项目里用的是 SnowNLP 或自己训练的模型那准确率会更高但依赖也更重部署时注意模型文件是否随项目一起打包了。3.3 可视化展示与前端页面结构前端用 layui 的话页面结构一般是 HTML layui 的 CSS/JS数据通过后端接口以 JSON 返回前端用 layui 的表格和图表组件渲染。项目正文里列了一堆 CSS 文件——layui.css、admin.css、layer.css、laydate.css 等说明前端是标准的 layui 后台管理风格。// layui 表格渲染示例data 来自后端接口 layui.use([table, laydate], function(){ var table layui.table; table.render({ elem: #newsTable, // 对应 HTML 里的 table id url: /api/news/list, // 后端数据接口 page: true, // 开启分页 cols: [[ {field: id, title: ID, width: 80}, {field: title, title: 标题, minWidth: 200}, {field: sentiment, title: 情感倾向, width: 120}, {field: create_time, title: 时间, width: 180} ]] }); });逻辑说明layui.use加载所需模块table.render渲染表格elem绑定页面上的 table 容器url指向后端接口cols定义列结构和字段映射。后端返回的数据格式要符合 layui 的预期通常是{code: 0, msg: , count: 总数, data: [...]}。参数说明page: true开启分页需要后端支持page和limit两个参数。field的值必须和后端返回的 JSON 字段名一致不一致就显示空白。minWidth是列最小宽度内容长的时候不会挤在一起。如果图表不显示先看浏览器控制台有没有报错再看接口返回的数据是不是空数组。4. 部署与调试避坑那些让你卡半天的常见问题4.1 依赖装不上版本冲突与编译失败现象pip install卡在某个包上报error: Microsoft Visual C 14.0 is required或者一堆红色编译错误。原因这个包没有对应你 Python 版本和系统的预编译 wheelpip 退回到源码编译而你的机器缺少编译工具链。常见于mysqlclient、lxml、numpy老版本。解决优先找有没有纯 Python 实现的替代包比如用pymysql替代mysqlclient用html5lib替代lxml。如果必须用就装 Visual C Build Tools或者换一个已经提供 wheel 的版本比如pip install numpy1.19.5这种明确指定版本的写法。实在不行降 Python 版本到 3.7很多老包的 wheel 覆盖到 3.7。4.2 数据库连不上密码、端口、驱动三重排查现象启动时报pymysql.err.OperationalError: (1045, Access denied for user rootlocalhost)或(2003, Cant connect to MySQL server)。原因1045 是用户名或密码错2003 是 MySQL 服务没启动或端口不对。还有一种情况是配置文件里写的 host 是localhost但 MySQL 只监听了127.0.0.1在某些系统上两者解析行为不一致。解决先用 Navicat 或命令行确认能连上 MySQLmysql -u root -p输入密码能进就说明服务正常。然后检查项目配置文件里的密码、端口默认 3306、库名。如果 Navicat 能连但代码连不上检查代码里用的驱动是 pymysql 还是 MySQLdb两者导入方式不同。最后确认 MySQL 用户权限root用户默认只允许本地连接如果代码里 host 写的是本机 IP 而不是localhost可能被拒。4.3 页面能打开但数据为空接口与字段映射排查现象前端页面正常渲染但表格没数据或者图表是空白。原因后端接口返回了数据但字段名和前端cols里的field对不上或者接口报错但前端没处理静默失败了。解决打开浏览器开发者工具切到 Network 面板刷新页面找到数据接口的请求看 Response 里返回的 JSON。如果data是空数组问题在后端查询或数据库如果data有内容但页面不显示问题在字段映射。把 Response 里的字段名和前端field值逐个对照大小写、下划线都要一致。另外看code是不是 0有些项目约定code: 0才是成功返回其他值前端会当失败处理。4.4 中文乱码字符集从库到页面的全链路现象数据库里存的中文显示成问号或乱码或者页面显示乱码。原因字符集不统一。MySQL 建库时用了latin1连接时没指定utf8mb4或者 Python 文件本身编码不是 UTF-8。解决建库时明确DEFAULT CHARACTER SET utf8mb4连接字符串里加charsetutf8mb4Python 文件头部加# -*- coding: utf-8 -*-HTML 页面meta charsetutf-8。四处都对齐后乱码基本消失。如果数据已经乱码存进去了改字符集也救不回来只能清库重导。4.5 端口被占用Web 服务起不来的排查现象运行项目时报Address already in use或端口已被占用。原因上一次运行的进程没退干净或者别的程序占用了同一个端口Flask 默认 5000Django 默认 8000。解决Windows 下netstat -ano | findstr :5000找到占用进程的 PID然后taskkill /PID 进程号 /F杀掉。Mac/Linux 下lsof -i :5000找到 PID 后kill -9 PID。或者直接改项目启动端口Flask 在app.run(port5001)里改Django 在启动命令里加python manage.py runserver 8001。5. 二次开发与论文写作把项目变成你自己的东西5.1 功能扩展的切入点毕业设计如果只是把项目跑起来答辩时很难讲出深度。常见的扩展方向有三个一是加数据源把单一采集目标扩展到多个平台用多线程或异步提高采集效率二是换情感分析算法把词典法换成朴素贝叶斯或 SVM用标注数据训练准确率对比就是论文里的实验章节三是加可视化维度比如时间趋势图、地域分布图、热词云图用 pyecharts 或 ECharts 都能做。# 用 pyecharts 生成情感趋势折线图的示例 from pyecharts.charts import Line from pyecharts import options as opts dates [2024-01, 2024-02, 2024-03, 2024-04] pos_counts [120, 135, 150, 142] neg_counts [30, 25, 40, 28] line Line() line.add_xaxis(dates) line.add_yaxis(正面, pos_counts) line.add_yaxis(负面, neg_counts) line.set_global_opts( title_optsopts.TitleOpts(title舆情情感趋势), yaxis_optsopts.AxisOpts(name数量) ) line.render(sentiment_trend.html)逻辑说明add_xaxis设横轴add_yaxis加数据系列set_global_opts配标题和轴名称render输出 HTML 文件。这个图可以直接嵌到前端页面里也可以截图放论文。参数说明dates和pos_counts的长度必须一致否则图表渲染会报错。render的路径是相对当前工作目录的建议用绝对路径避免找不到文件。5.2 论文里怎么描述技术选型论文的技术选型章节不要写成因为 Python 简单所以选 Python这种话。合格的写法是先列需求数据采集、中文处理、Web 展示、数据存储再对每个需求列候选方案最后说选型理由。比如数据库选 MySQL 而不是 SQLite理由是舆情数据量大、需要多表关联和并发读写SQLite 在并发写入上有限制。Web 框架选 Flask 而不是 Django理由是项目规模不大、需要轻量灵活、Django 的 ORM 和 admin 对这个小系统来说太重。这种对比式写法答辩老师一看就知道你是想过问题的。5.3 代码之外要准备的东西答辩前把这几样准备好系统运行截图每个功能页面一张、数据库表结构图用 Navicat 的反向工程导出、核心代码片段采集、分词、情感判断各一段、测试数据至少几百条真实或模拟数据别用空库演示。另外把项目里明显是模板生成的注释和无关文件清理掉改成你自己的注释风格不然查重和答辩提问时容易露馅。5.4 一个我踩过的坑我第一次跑这类项目时数据库脚本导入后没检查表数量直接启动结果登录页面能开但注册报错查了半天才发现用户表少了一张关联表SQL 脚本执行到一半报错但我没看命令行输出。从那以后我每次导完 SQL 都强制走一遍SHOW TABLES和SELECT COUNT(*)确认表数量和初始数据都对得上再启动项目。这个习惯帮我省了很多来回排查的时间。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

vscode插件开发文档地址怎么找?TaoToken统一Key通道下的本地调试与发布配置

vscode插件开发文档地址怎么找?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/12 20:16:31 阅读更多 →
数据不出内网:基于Ollama+OneAPI构建企业专属DeepSeek智能中台

数据不出内网:基于Ollama+OneAPI构建企业专属DeepSeek智能中台

/* 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 20:16:31 阅读更多 →
从零搭建开放代码审查流程:Git分支模型与CI自动化门禁实战

从零搭建开放代码审查流程:Git分支模型与CI自动化门禁实战

开头“open-code-review”这个名字起得其实挺妙,两个层面都讲到了:代码审查这件事本身是开放的——任何人的改动都可以被团队里的同伴审阅、讨论、修订,再合入主线;与此同时,工具链也应该开放——不依赖某一家商业平台…

2026/10/12 20:16:30 阅读更多 →

最新新闻

C++图像分割实战:大津法、连通域分析与区域合并

C++图像分割实战:大津法、连通域分析与区域合并

1. 项目概述与题目拆解1.1 这道题到底在考什么拿到"1013 Image Segmentation (35分)(C)"这个题目时,我第一反应是:这是一道典型的综合性算法题——不是单纯让你调库跑个模型,而是要求你从底层理解图像分割的…

2026/10/12 21:11:54 阅读更多 →
给大模型补上长期记忆:从上下文窗口到外部记忆层的工程实践

给大模型补上长期记忆:从上下文窗口到外部记忆层的工程实践

1. 从“对话”到“记忆”:先搞清楚AI记忆到底缺什么做AI应用开发的朋友应该都有这种体验:跟模型聊得正high,上下文窗口一滚,前面说的关键约定直接“失忆”了。更尴尬的是,你昨天让助手记住的偏好、项目背景、代码规范&…

2026/10/12 21:11:54 阅读更多 →
算法复杂度实战指南:从LeetCode刷题到性能直觉养成

算法复杂度实战指南:从LeetCode刷题到性能直觉养成

1. 这不是“背公式”的速成课,而是帮你把算法复杂度刻进肌肉记忆的实战路径你是不是也经历过这样的场景:看到LeetCode上一道题,脑子里立刻蹦出几个解法,但一到分析时间空间复杂度,就卡在“这个for循环嵌套了三层&#…

2026/10/12 21:11:54 阅读更多 →
Tesseract OCR离线安装与批量识别实战:中文语言包配置与预处理技巧

Tesseract OCR离线安装与批量识别实战:中文语言包配置与预处理技巧

简介:Tesseract OCR 安装包与中文语言包面向需要在本地或 Python 项目中实现文字识别的开发者、测试人员及自动化办公用户,解决图片文字提取、批量文档数字化等场景下的环境搭建与中文识别问题。压缩包共 723 个文件,约 36.01MB,以…

2026/10/12 21:11:54 阅读更多 →
Python教务系统源码解析:数据库设计与选课功能实现

Python教务系统源码解析:数据库设计与选课功能实现

简介:这份资源是面向Python Web开发初学者与课程设计学习者的学校教务系统完整项目包,围绕学生信息管理、课程安排、成绩录入与查询等教务场景,提供一套可运行、可参考的实践方案。压缩包共9个文件,约467KB,以7个sql数…

2026/10/12 21:11:54 阅读更多 →
网申简历附件太大,先换模板还是压缩 PDF?

网申简历附件太大,先换模板还是压缩 PDF?

网申简历附件太大,先换模板还是压缩 PDF? 先看“大”从哪里来,再决定怎么改。模板里塞了整页照片、复杂背景,和一份扫描成图片的简历,处理方法不一样。别一上来就把 PDF 压到字也看不清;能减少装饰图片时&a…

2026/10/12 21:10:53 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →