从仓库根目录 Lastb_soft_version.txt(「最终选择指南」之前)提取页面 URL,抓取网页 <title> 并与历史快照比对,快速发现「可能有新版本」的介绍页。
不更新 software/ 也完全可用——本工具只做健康检查,不负责下载。破解 / 423down / 网盘类资源仍需手工下载后再替换目录并执行 generate_and_push.bat。
月度更新入口:双击
monthly_sop.bat,按步骤引导完成「快检 → 看报告 → 决定是否更新 → 发布」。
每月跑一遍 SOP → 报告里 A 类无变化就收工;有变化再手工下包 → 替换 software/ → generate_and_push.bat → 客户端 sync_software。
flowchart TD
Start([双击 monthly_sop.bat]) --> S1[步骤1: A 类快检 ~15s]
S1 --> S2[步骤2: 打开 reports/index.html]
S2 --> Q{A 类标题有变化?}
Q -->|否| EndOK([结束 · 本月不更新])
Q -->|是| S3[步骤3: 报告页打开链接人工确认]
S3 --> Q2{确定要更新?}
Q2 -->|否| EndOK
Q2 -->|是| DL[GitHub: gh-release-fetch / 其他: 手工下载]
DL --> REP[替换 software/ 对应目录]
REP --> S4[步骤4 可选: 改 Lastb_soft_version.txt]
S4 --> S5[步骤5: generate_and_push.bat]
S5 --> Sync[各端 sync_software.bat]
| 步骤 | 做什么 | 工具 / 路径 | 可跳过? |
|---|---|---|---|
| 1 快检 | 抓 A 类 ~42 页标题,与上月快照比对 | monthly_sop.bat 或 monthly_check.bat |
否(或看旧报告) |
| 2 看报告 | 关注「A 类 · 同步软件」的标题变化数 | reports/index.html |
否 |
| 3 决策 | 变化 = 0 → 直接结束;有变化 → 点开链接确认 | 报告页「打开 / 依次打开变化页」 | 无变化必跳过后续 |
| 3 下载 | GitHub 项跑 gh-release-fetch;423down/破解 浏览器手工下 | software\gh-release-fetch\run_update.bat |
仅「要更新」时 |
| 3 替换 | 解压覆盖到 software\子目录\ |
资源管理器 | 仅「要更新」时 |
| 4 文档 | 改装机区说明、可选 append digest 一行 | Lastb_soft_version.txt |
可选 |
| 5 发布 | 生成 list.txt 并 push |
根目录 generate_and_push.bat |
未改 software 则跳过 |
| 6 同步 | 各机器拉新版本 | sync_software.bat |
仅发布后 |
每个监控范围(A / 全量 / 423down)都要 连续跑两次 才会出现「标题变化」:
| 范围 | 第一次 | 第二次 |
|---|---|---|
| A 类 | 建立基线,无 changed_tier_a_urls.txt |
有比对结果 |
| 全量 118 页 | 建立基线,无 changed_pages_urls.txt |
有比对结果 |
| 423down digest | 同上 | 同上 |
| 7xiazai 列表 | 同上 | 同上 |
控制台出现 「首次运行该范围:已保存标题基线」 时属于正常,不是报错。再跑一遍即可。
若第二次显示 「无标题变化」 → 说明页面标题与上次一致,不必更新 software/。
| 操作 | 频率 |
|---|---|
monthly_check_full.bat — A + 装机 + 423down + 7xiazai |
约每季度(连跑两次) |
monthly_sop.bat 提供:
| 选项 | 用途 |
|---|---|
| 1 完整月度 SOP | 带 5 步引导(推荐) |
| 2 仅 A 类快检 | 只要报告、不要问答 |
| 3 仅发布 | 已手工改好 software/,直接 push |
| 4 季度 423down | digest 356 条全量比对 |
| 5 7xiazai 列表 | 首页 ~ /page/65/ 列表页快检 |
| 6 打开报告页 | 刷新并打开 index.html |
平时不做事(software/ 照用) │
▼ 偶尔想瞄一眼(约 15 秒,A 类 42 页)
monthly_check.bat
│
├─ 无变化 → 结束,不用更
│
└─ 有变化 → open_report.bat(HTML 报告,可筛选 / 一键打开)
或 open_changed_pages.bat
│
▼ 确认真要更新
手工下载 → 替换 software/ → generate_and_push.bat
| 场景 | 操作 | 频率 |
|---|---|---|
| 月度更新(推荐) | monthly_sop.bat → 选 1 |
约每月 |
| 默认快检 | monthly_check.bat |
想查时 / 约每月 |
| 只打开有变化的页 | open_changed_pages.bat |
快检后有变化时 |
| 全量快检(A+装机+423down+7xiazai) | monthly_check_full.bat |
季度(连跑两次) |
| 423down digest 全量(可选) | monthly_check_423down.bat |
季度 / 想找新资源时 |
| 7xiazai 软件页(可选) | monthly_check_7xiazai.bat |
季度 / 扫 7xiazai 软件标题 |
| 打开 7xiazai 变化页 | open_changed_7xiazai.bat |
7xiazai 快检后有变化时 |
| 打开 423down 变化页 | open_changed_423down.bat |
digest 快检后有变化时 |
| 打开 HTML 报告页 | open_report.bat |
随时查看 / 快检后自动打开 |
| 全量打开(兜底) | open_soft_pages.bat |
很少需要 |
| 级别 | 含义 | 数量(约) | 来源 |
|---|---|---|---|
| A 类 | 与 config.json 中 software_dirs 同步目录相关的页面 |
42 | watch_tier_a_urls.txt |
| B 类 | 装机区其余参考页(输入法教程、工具对比等) | 76 | soft_pages_urls.txt 其余 |
| 423down digest | digest 区 423down 去重(可选) | 356 | 423down_digest_urls.txt |
| 7xiazai 软件页 | 从列表页解析的软件详情页(可选) | ~650+ | 7xiazai_list_urls.txt |
- 月度默认:
monthly_check.bat只跑 A 类(42 页)。 - 季度全量:
monthly_check_full.bat一次刷新报告页 四个分区(A / 装机 / 423down / 7xiazai)。
A 类匹配规则在 build_watchlist.py 的 A_PATTERNS 中维护;修改 config.json 或关键词后运行 build_watchlist.bat 刷新。
| 文件 | 说明 |
|---|---|
monthly_sop.bat |
月度更新主入口:菜单 + 5 步 SOP 引导 |
monthly_check.bat |
A 类快检:提取 URL → 抓标题 → 比对 → 打开报告 |
open_changed_pages.bat |
打开有变化的页面;优先 changed_tier_a_urls.txt,参数 all 则用全量变化列表 |
monthly_check_full.bat |
季度全量:A 类 42 + 装机区 118 + 423down + 7xiazai(约 600+ 页);说明见 full_check_intro.txt |
monthly_check_423down.bat |
可选:digest 区 423down 去重全量 + 比对(约 356 条) |
monthly_check_7xiazai.bat |
可选:从列表页发现 ~650+ 软件详情页 + 比对标题 |
open_changed_7xiazai.bat |
打开 changed_7xiazai_urls.txt |
extract_7xiazai_pages.bat |
生成 7xiazai_list_urls.txt(可改 7xiazai_config.json) |
open_changed_423down.bat |
打开 changed_423down_urls.txt 中的变化页 |
extract_423down_digest.bat |
仅从 digest 区重新提取 423down 链接 |
open_report.bat |
生成并打开 reports/index.html 报告页 |
open_soft_pages.bat |
打开装机区全部页面 URL(不含直链下载) |
extract_pages.bat |
仅从 Lastb_soft_version.txt 重新提取 URL |
build_watchlist.bat |
根据 config.json 生成 A/B 分级清单 |
fetch_titles.bat |
仅执行 A 类抓标题 + 比对(不刷新 URL 列表) |
| 文件 | 说明 |
|---|---|
extract_pages.py |
从清单文档装机区提取 URL;过滤直链 |
extract_423down_digest.py |
从 digest 区提取 423down 链接并去重 |
extract_7xiazai_pages.py |
生成 7xiazai 列表分页 URL |
build_watchlist.py |
将页面 URL 按 software_dirs 关键词分为 A/B,输出 watchlist.json |
fetch_titles.py |
并发抓取标题并比对历史 |
report_html.py |
生成 HTML 报告页 reports/index.html |
fetch_titles.py 每次运行结束会自动刷新报告页。
fetch_titles.py 常用参数:
python fetch_titles.py --scope a --compare REM A 类 + 比对(默认推荐)
python fetch_titles.py --scope all --compare REM 装机区全量 + 比对
python fetch_titles.py --scope 423down --compare REM digest 423down 全量 + 比对
python fetch_titles.py --scope 7xiazai --compare REM 7xiazai 列表 + 比对依赖:Python 3.6+,标准库即可,无需 pip install。
soft_page_check/
├── README.md ← 本说明
├── monthly_sop.bat ← 月度更新 SOP(推荐入口)
├── monthly_check.bat ← 仅 A 类快检
├── soft_pages_urls.txt ← 全部页面 URL(118,自动生成)
├── all_urls.txt ← 含直链在内的全部 URL(138,仅供参考)
├── watch_tier_a_urls.txt ← A 类监控 URL(自动生成)
├── 423down_digest_urls.txt ← digest 区 423down 去重(356,可选)
├── 7xiazai_list_urls.txt ← 7xiazai 列表页(65+,可选)
├── 7xiazai_config.json ← max_page 等配置
├── watchlist.json ← 完整分级索引(URL ↔ 软件 ↔ 域名)
├── url_meta.json ← URL 元数据简表
├── changed_tier_a_urls.txt ← 比对后有变化的 A 类 URL
├── changed_pages_urls.txt ← 装机区全量比对的变化 URL
├── changed_423down_urls.txt ← 423down digest 比对的变化 URL
├── changed_7xiazai_urls.txt ← 7xiazai 比对的变化 URL
├── history/
│ ├── titles_latest_A.json ← A 类最新标题快照
│ ├── titles_latest_ALL.json ← 装机区全量最新快照
│ ├── titles_latest_423DOWN.json
│ ├── titles_latest_7XIAZAI.json
│ └── titles_*_YYYY-MM-DD_*.json
└── reports/
├── index.html ← **HTML 报告页(推荐查看方式)**
├── last_diff_a.json ← 最近一次 A 类比对结果
├── last_diff_all.json
├── last_diff_423down.json
└── report_*.txt ← 纯文本报告(备用)
若不用 SOP、只跑快检:
- 双击
monthly_check.bat— 建立 A 类标题基线(首次无历史可比)。 - 再双击
monthly_check.bat— 第二次起才会输出「标题变化」与报告页变化列表。 - 若有变化 → 打开
reports/index.html→ 人工确认后决定是否更新software/。
(使用 monthly_sop.bat 选 [1] 可一次走完上述逻辑与后续发布引导。)
季度全量:连续跑两次 monthly_check_full.bat,报告页 A / 装机 / 423down / 7xiazai 四个分区都会有快照与变化比对。
- 来源:
Lastb_soft_version.txt中最终选择指南之后的# [日期]digest 块。 - 数量:去重后约 356 条。
- 入口:
monthly_check_423down.bat(连跑两次才有比对)。
- 来源:从
https://www.7xiazai.com/~/page/65/列表页解析软件详情页链接,并合并 txt 内其它7xiazai.com软件页。 - 监控对象:各软件页
<title>(如Bandicam v8.3.0 … – 小兵下载站),不监控/page/N/列表页标题。 - 数量:约 650+ 条(见
7xiazai_list_urls.txt)。 - 改页数:编辑
7xiazai_config.json的max_page,再跑extract_7xiazai_pages.bat。 - 入口:
monthly_check_7xiazai.bat(连跑两次才有比对)。 - 说明:具体下载仍手工;列表变更后需重新
extract_7xiazai_pages.bat刷新 URL 清单。
- 包含:
Lastb_soft_version.txt第 1 行起,至===================/最终选择指南(针对你外贸/跨境场景)之前。 - 排除:该行之后的 VPN/Clash、Chrome 插件、423down digest、破解社区等。
- 排除直链:安装包、GitHub
releases/download/、gh-proxy.com镜像、Python/ftp/等(只保留介绍页 / 仓库页 / 网盘分享页)。
重新提取:运行 extract_pages.bat 或 monthly_check.bat(会自动刷新)。
快检完成后会自动打开(或双击 open_report.bat):
soft_page_check/reports/index.html
功能:
- 四个分区:A 类 / 装机全量 / 423down / 7xiazai
- 标题变化(主区域):链接、旧/新标题、打开按钮
- 全部快照标题(默认折叠):当前抓到的每个页面标题,可搜索;有变化的条目带「有变化」标记
- 搜索框:变化区与快照区各有一个,互不影响
- 依次打开变化页:仅打开有变化的链接(需允许浏览器弹窗)
控制台与 reports/report_*.txt 会按域名分组,例如:
[423down]— 标题常带版本号,优先人工查看[github]— 仓库 / Releases 列表页[ghxi]/[hybase]— 果核、Hybase 等
「标题变化」不等于必须更新:423down 站点改标题、SEO 调整也会触发;「旧: timed out」等恢复抓取(上次失败、本次成功)通常也无需更新;最终是否下载仍由人工判断。
部分站点可能抓取失败(反爬、证书、超时),可稍后重试或手工打开该 URL。
编辑 build_watchlist.py 中 A_PATTERNS,为 config.json 里的软件名增加 URL 关键词(小写子串),例如:
"SublimeText": ["sublimetext", "423down.com/xxxx"],保存后运行 build_watchlist.bat,再跑 monthly_check.bat。
当前无匹配页面的 sync 目录(正常,可能仅有直链或无网页):见 watchlist.json → stats.no_url_sync_dirs。
| 主仓库文件 | 关系 |
|---|---|
Lastb_soft_version.txt |
URL 与说明的源文档 |
config.json → software_dirs |
定义 A 类监控范围 |
software/ |
实际同步的软件目录;本工具不修改此目录 |
generate_and_push.bat |
确认更新软件之后才需要运行 |
根目录 README.md |
客户端同步与维护者更新流程总览 |
- 稳定优先 — 不更也能用,月度检查是可选的。
- 少开页面 — 爬标题比对历史,只打开有变化的 URL。
- 破解手工 — 自动化止于「提醒」,下载与验证必须人工完成。
- A 类优先 — 只监控真正进 sync 清单的软件相关页面。
- 423down / 7xiazai 可选 — 独立库,不进默认月度快检;季度用
monthly_check_full.bat一次跑齐。