<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/wp-content/plugins/rss-beauty/pink.xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>程序媛 Archives - obaby 𝐢‍𝐧⃝ void</title>
	<atom:link href="https://oba.by/category/code-girl/feed/" rel="self" type="application/rss+xml" />
	<link>https://zhongxiaojie.com/category/code-girl/</link>
	<description>程序媛 / 独立开发者 / 智商不稳定的女神经</description>
	<lastBuildDate>Mon, 27 Apr 2026 02:03:03 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://oba.by/wp-content/uploads/2026/01/uugai.com-166111691272754-100x100.png</url>
	<title>程序媛 Archives - obaby 𝐢‍𝐧⃝ void</title>
	<link>https://zhongxiaojie.com/category/code-girl/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>浅谈前后端分离系统的SEO优化</title>
		<link>https://oba.by/2026/04/1156/</link>
					<comments>https://oba.by/2026/04/1156/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 02:03:03 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[nuxt]]></category>
		<category><![CDATA[nuxt.js]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[vue]]></category>
		<category><![CDATA[前后端分离]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=1156</guid>

					<description><![CDATA[开发一个系统，不管是从头开始，还是在已有系统上二次开发，从来都不是一蹴而就的事情。在上线以前总觉得已经做够了足 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1744-scaled.jpg" data-lbwps-width="1707" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1744-scaled.jpg" data-lightbox="gal[1156]"><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-1161" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1744-scaled.jpg" alt="" width="1707" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/30A1744-scaled.jpg?v=1777255370 1707w, https://oba.by/wp-content/uploads/2026/04/30A1744-200x300.jpg?v=1777255370 200w, https://oba.by/wp-content/uploads/2026/04/30A1744-683x1024.jpg?v=1777255370 683w, https://oba.by/wp-content/uploads/2026/04/30A1744-100x150.jpg?v=1777255370 100w, https://oba.by/wp-content/uploads/2026/04/30A1744-768x1152.jpg?v=1777255370 768w, https://oba.by/wp-content/uploads/2026/04/30A1744-1024x1536.jpg?v=1777255370 1024w, https://oba.by/wp-content/uploads/2026/04/30A1744-1365x2048.jpg?v=1777255370 1365w, https://oba.by/wp-content/uploads/2026/04/30A1744-665x998.jpg?v=1777255370 665w, https://oba.by/wp-content/uploads/2026/04/30A1744-173x260.jpg?v=1777255370 173w" sizes="(max-width: 1707px) 100vw, 1707px" /></a></p>
<p>开发一个系统，不管是从头开始，还是在已有系统上二次开发，从来都不是一蹴而就的事情。在上线以前总觉得已经做够了足够的测试，但是在上线之后还是会出现各种各样的问题。</p>
<p><span id="more-1156"></span></p>
<p>有的问题，如果是新系统完全可以避免，正是由于是在已有系统上开发的为了兼容wp才会引入一系列的问题，这类问题主要是wp原生的一些机制兼容问题导致的包括但不限于：</p>
<p>1.wp固定连接的兼容</p>
<p>2.shortcode的解析处理</p>
<p>3.wp资源文件与新系统资源文件的路径兼容处理</p>
<p>4.wp启用插件的功能实现，邮件通知、micro-post、邮件发送、邮件模板等等</p>
<p>5.其他的未知问题</p>
<p>也有一部分是新系统天生的缺陷：seo不友好，搜索引擎爬虫无法获取网页内容，毕竟robot不会执行js，这个是前后端分离系统的必然缺陷。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="html">&lt;!doctype html&gt;
&lt;html lang="zh-CN"&gt;
  &lt;head&gt;
    &lt;meta charset="UTF-8" /&gt;
    &lt;link
      rel="icon"
      href="https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-100x100.png"
      sizes="32x32"
    /&gt;
    &lt;link
      rel="icon"
      href="https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-200x200.png"
      sizes="192x192"
    /&gt;
    &lt;link
      rel="apple-touch-icon"
      href="https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-200x200.png"
    /&gt;
    &lt;meta
      name="msapplication-TileImage"
      content="https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-300x300.png"
    /&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
    &lt;meta
      name="description"
      content="爱好广泛的女王 独立APP开发者 AI修理师 爬虫砖家 逆向工程师 人工智能 全栈工程师"
    /&gt;
    &lt;meta
      name="keywords"
      content="人工智能,机器学习,ml,逆向分析,信息安全,物联网,ida,uniapp,python,爬虫,妹子图,秀人集,java,vue"
    /&gt;
    &lt;meta
      name="theme-color"
      content="#ff4f87"
    /&gt;
    &lt;link
      rel="manifest"
      href="/manifest.json"
    /&gt;
    &lt;link
      rel="stylesheet"
      href="/vendor/enlighterjs.min.css"
    /&gt;
    &lt;link
      rel="stylesheet"
      href="/vendor/simple-microblogging.css"
    /&gt;
    &lt;title&gt;obaby 𝐢&#x200d;𝐧⃝ void - 程序媛 / 独立开发者 / 智商不稳定的女神经&lt;/title&gt;
    &lt;script type="module" crossorigin src="/assets/index-DFHpxK1A.js"&gt;&lt;/script&gt;
    &lt;link rel="stylesheet" crossorigin href="/assets/index-CKljzL1r.css"&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;div id="app"&gt;&lt;/div&gt;
    &lt;script
      defer
      src="/vendor/enlighterjs.min.js"
    &gt;&lt;/script&gt;
    &lt;script defer src="/vendor/obaby.js"&gt;&lt;/script&gt;

  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>&nbsp;</p>
<p>当然有人会比较在意这个东西，不是说这个东西不对。可能是自己没那么在乎吧，之前就曾经收到过数次关于seo友链不显示的问题，上次是搞页面静态化。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-092806@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="621" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-092806@2x-scaled.jpg" data-lightbox="gal[1156]"><img decoding="async" class="alignnone size-full wp-image-1158" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-092806@2x-scaled.jpg" alt="" width="2560" height="621" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-scaled.jpg?v=1777253334 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-300x73.jpg?v=1777253334 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-1024x248.jpg?v=1777253334 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-150x36.jpg?v=1777253334 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-768x186.jpg?v=1777253334 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-1536x373.jpg?v=1777253334 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-2048x497.jpg?v=1777253334 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-665x161.jpg?v=1777253334 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-092806@2x-1072x260.jpg?v=1777253334 1072w" sizes="(max-width: 2560px) 100vw, 2560px" /></a></p>
<p>其实，在我的博客添加的友链，也并不是全部都不显示，毕竟还有其他的域名，<a href="https://zhongxiaojie.com" target="_blank" rel="noopener">zhongxiaojie.com</a> 以及 <a href="http://oba.by" target="_blank" rel="noopener">oba.by</a>等还是会显示完整的友链信息，这两个域名并没有切换到新的前后端分离的系统。所以，我博客的友链，相当于数个站都给友链做了多次链接，我不知道这个东西对于seo有没有作用，至于是有好处，还是有坏处，我并不清除，我自己并不是那么关注所谓的seo。如果觉得这样反而会出问题的，欢迎反馈，我会及时删除相关链接哈。</p>
<p>当然，这个东西有办法解决吗？答案自然是有，至于解决方法，那就是继续回归服务器渲染。</p>
<p>这解决方案真的是简单粗暴啊，合着这折腾来折腾去，又要弄回服务器渲染，这辛辛苦苦四十年，一夜回到解放前？</p>
<p>采用这种简单粗暴的方法来解决seo问题，显示不是本仙女的作风。既然是针对搜索引擎的，那就直接对搜索引擎做单独的处理就完了。检测ua，如果是收缩引起的ua返回服务器渲染之后的内容，如果是正常浏览（搜索引擎爬虫意外的ua）返回前后端分离的内容。</p>
<p>要实现服务器渲染，基于vue的可以参考nuxt.js(百度百科):</p>
<blockquote>
<div class="para_efdCF summary_TvRxu MARK_MODULE" data-tag="paragraph" data-uuid="i5gzm8kpld" data-idx=""><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">Nuxt.js是由NuxtLabs团队于2016年10月推出的基于</span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true"><a class="innerLink_RUkn8" href="https://baike.baidu.com/item/Vue.js/19884851?fromModule=lemma_inlink" target="_blank" rel="noopener" data-from-module="summary">Vue.js</a></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">的开源Web框架，采用MIT License授权。该框架灵感来源于</span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true"><a class="innerLink_RUkn8" href="https://baike.baidu.com/item/Next.js/64867074?fromModule=lemma_inlink" target="_blank" rel="noopener" data-from-module="summary">Next.js</a></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">，Nuxt采用了约定俗成的规范以及一种明确的目录结构，以实现对重复性任务的自动化处理，并使开发人员能够专注于推进新功能的开发。</span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [2]<em id="sup-2"></em></sup></span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [5]<em id="sup-5"></em></sup></span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [8]<em id="sup-8"></em></sup></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">。</span></div>
<div class="para_efdCF summary_TvRxu MARK_MODULE" data-tag="paragraph" data-uuid="i5gzm8ltlr" data-idx=""><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">Nuxt默认内置</span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true"><a class="innerLink_RUkn8" href="https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E6%B8%B2%E6%9F%93/61701022?fromModule=lemma_inlink" target="_blank" rel="noopener" data-from-module="summary">服务器端渲染</a></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">（SSR）功能、支持静态站点生成（SSG）和</span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true"><a class="innerLink_RUkn8" href="https://baike.baidu.com/item/%E5%8D%95%E9%A1%B5%E9%9D%A2%E5%BA%94%E7%94%A8/18753779?fromModule=lemma_inlink" target="_blank" rel="noopener" data-from-module="summary">单页面应用</a></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">（SPA）三种部署模式，可通过&#8221;nuxt generate&#8221;命令生成预渲染HTML文件实现静态化部署</span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [5]<em id="sup-5"></em></sup></span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [7]<em id="sup-7"></em></sup></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">。采用模块化架构提供50多个扩展模块，支持TypeScript类型安全、推送和现代化开发工具链</span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [4]<em id="sup-4"></em></sup></span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [6]<em id="sup-6"></em></sup></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">。</span></div>
</blockquote>
<p>接下来也就简单了，创建nuxt项目，实现与frontend同样的页面路由和相关的页面文件布局。接口可以直接复用当前的接口，</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-094819@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1613" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-094819@2x-scaled.jpg" data-lightbox="gal[1156]"><img decoding="async" class="alignnone size-full wp-image-1159" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-094819@2x-scaled.jpg" alt="" width="2560" height="1613" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-scaled.jpg?v=1777254518 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-300x189.jpg?v=1777254518 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-1024x645.jpg?v=1777254518 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-150x95.jpg?v=1777254518 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-768x484.jpg?v=1777254518 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-1536x968.jpg?v=1777254518 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-2048x1290.jpg?v=1777254518 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-665x419.jpg?v=1777254518 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260427-094819@2x-413x260.jpg?v=1777254518 413w" sizes="(max-width: 2560px) 100vw, 2560px" /></a></p>
<p>配置openresty的处理逻辑：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic"># -----------------------------------------------------------------------------
# Dynamic Rendering（SEO）：爬虫 UA → Nuxt SSR；普通用户 → 现有 SPA
# - Nuxt SSR 服务建议监听 127.0.0.1:3000（可按需调整）
# - ?__ssr=1 可强制走 SSR（方便自测/排障）
# - 仅对“页面路由”生效，不影响 /assets、/vendor、/bp-api、WP 后台等
# -----------------------------------------------------------------------------
set $bp_force_ssr 0;
if ($arg___ssr = "1") {
    set $bp_force_ssr 1;
}

set $bp_is_bot 0;
if ($http_user_agent ~* "(googlebot|bingbot|baiduspider|yandexbot|duckduckbot|slurp|sogou|360spider|bytespider|petalbot|facebookexternalhit|twitterbot|rogerbot|ahrefsbot|semrushbot|mj12bot)") {
    set $bp_is_bot 1;
}

location @nuxt_ssr {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Uri $request_uri;
}

# 418 跳转技巧：在页面路由里 return 418 → error_page 转到 @nuxt_ssr
error_page 418 = @nuxt_ssr;</pre>
<p>启动之后就可以查看服务器渲染的页面了：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15.png" data-lbwps-width="2151" data-lbwps-height="2081" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15.png" data-lightbox="gal[1156]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1155" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15.png" alt="" width="2151" height="2081" srcset="https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15.png?v=1777209116 2151w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-300x290.png?v=1777209116 300w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-1024x991.png?v=1777209116 1024w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-150x145.png?v=1777209116 150w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-768x743.png?v=1777209116 768w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-1536x1486.png?v=1777209116 1536w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-2048x1981.png?v=1777209116 2048w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-665x643.png?v=1777209116 665w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-269x260.png?v=1777209116 269w" sizes="auto, (max-width: 2151px) 100vw, 2151px" /></a> <a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41.png" data-lbwps-width="2166" data-lbwps-height="2088" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41.png" data-lightbox="gal[1156]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1154" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41.png" alt="" width="2166" height="2088" srcset="https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41.png?v=1777209101 2166w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-300x289.png?v=1777209101 300w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-1024x987.png?v=1777209101 1024w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-150x145.png?v=1777209101 150w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-768x740.png?v=1777209101 768w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-1536x1481.png?v=1777209101 1536w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-2048x1974.png?v=1777209101 2048w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-665x641.png?v=1777209101 665w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-270x260.png?v=1777209101 270w" sizes="auto, (max-width: 2166px) 100vw, 2166px" /></a></p>
<p>当然，这个实现方法的缺点就是得完全复刻frontend的相关路由和页面，优点就是不用关注原来的系统实现逻辑，哪怕爬虫seo系统出问题也不会影响现有的系统运行。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/04/1156/feed/</wfw:commentRss>
			<slash:comments>62</slash:comments>
		
		
			</item>
		<item>
		<title>产品，还是玩具？ &#8212; Baby Press(缝合怪)</title>
		<link>https://oba.by/2026/04/1141/</link>
					<comments>https://oba.by/2026/04/1141/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 06:58:12 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[vue]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=1141</guid>

					<description><![CDATA[这算是给这个东西写的第二篇正式的文章，本来我的想法很简单，做一个简单的前后端分离的系统来完全替代wp的php渲 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1592-scaled.jpg" data-lbwps-width="1707" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1592-scaled.jpg" data-lightbox="gal[1141]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1147" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1592-scaled.jpg" alt="" width="1707" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/30A1592-scaled.jpg?v=1777013703 1707w, https://oba.by/wp-content/uploads/2026/04/30A1592-200x300.jpg?v=1777013703 200w, https://oba.by/wp-content/uploads/2026/04/30A1592-683x1024.jpg?v=1777013703 683w, https://oba.by/wp-content/uploads/2026/04/30A1592-100x150.jpg?v=1777013703 100w, https://oba.by/wp-content/uploads/2026/04/30A1592-768x1152.jpg?v=1777013703 768w, https://oba.by/wp-content/uploads/2026/04/30A1592-1024x1536.jpg?v=1777013703 1024w, https://oba.by/wp-content/uploads/2026/04/30A1592-1365x2048.jpg?v=1777013703 1365w, https://oba.by/wp-content/uploads/2026/04/30A1592-665x998.jpg?v=1777013703 665w, https://oba.by/wp-content/uploads/2026/04/30A1592-173x260.jpg?v=1777013703 173w" sizes="auto, (max-width: 1707px) 100vw, 1707px" /></a></p>
<p>这算是给这个东西写的第二篇正式的文章，本来我的想法很简单，做一个简单的前后端分离的系统来完全替代wp的php渲染机制。</p>
<p><span id="more-1141"></span></p>
<p>只是，在开发的过程中为了迎合wp的各种现有数据格式、插件、主题、shortcode等等，代码复杂度也在不断的提高。得益于ai的崛起，现在生成代码是真的简单方便，原来数个人的工作，现在一人就可以完成了。尽管哪怕没有ai，我自己也能全部搞定。ai在某些方便还是提高了输出效率，原本很多人不是全栈的，现在也给搞成了全干工程师，哪怕不会，也得硬着头皮上，去验证ai写的各种代码。</p>
<p>我一般不喜欢给ai太具体的描述，但是会给一个准确的描述，实现方法，实现路径，实现目标，所以多数时候ai呈现的代码质量尚可。然而，等到实际上线的时候发现还是一堆问题。</p>
<p>做完准备把wp的前端全部迁移到现在的baby press的前端，尝试部署之后出现了一系列问题，当然很多问题源自于测试不充分。为了解决两个系统的整合问题，需要大量的配置文件和代码。除了openresty的配置文件，前后端也生成了一堆默认的配置模板，当然，这些模板主要是为了提供一些自定义的功能，以及安全性提升加密等等。</p>
<p>这么复杂的系统，现在我觉得更像一个玩具，而不是产品，好的产品应该是简单易用，开箱可用的。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">DJANGO_SECRET_KEY=dev-secret-key-change-me
DJANGO_DEBUG=1
DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost
# 浏览器里「页面」的 origin（协议+域名+端口），须与前端访问地址一致；逗号分隔、勿加路径。
# 生产示例（Vue 部署在 i 子域、API 在 api 子域时，必须把 i 子域写进来，否则会 CORS 失败）：
# CORS_ALLOWED_ORIGINS=http://127.0.0.1:5173,http://localhost:5173,http://i.zhongxiaojie.cn,https://i.zhongxiaojie.cn
CORS_ALLOWED_ORIGINS=http://127.0.0.1:5173,http://localhost:5173
# Django CSRF 信任来源（协议+域名+端口，逗号分隔；用于 /admin/login/ 等表单提交）
# 生产示例：CSRF_TRUSTED_ORIGINS=https://api.zhongxiaojie.cn,https://i.zhongxiaojie.cn
CSRF_TRUSTED_ORIGINS=http://127.0.0.1,http://localhost

# Django 缓存（评论 UA/IP 查询结果）；推荐 Redis，例如 redis://127.0.0.1:6379/1
# 留空则使用 LocMem（仅开发、单进程）
# DJANGO_CACHE_REDIS_URL=redis://127.0.0.1:6379/1
#
# WordPress Object Cache Pro（可选）：Django 直写评论后用于定向清理评论缓存。
# 请与 WordPress 端 WP_REDIS_CONFIG 的 host/db/prefix 保持一致。
# 例如 WP_REDIS_CONFIG 里 database=5，则这里应为 redis://127.0.0.1:6379/5
# WP_OBJECT_CACHE_REDIS_URL=redis://127.0.0.1:6379/&lt;database&gt;
# 注意：当前定向清理实现依赖 prefix，建议在 WP_REDIS_CONFIG 中显式配置 'prefix' =&gt; 'zhxj'
# WP_OBJECT_CACHE_REDIS_PREFIX=zhxj
# WP_OBJECT_CACHE_BLOG_ID=0

# Baby IP Lookup：本机 lookup-ua 与静态资源公网域名（PNG/SVG 补全）
# UA_LOOKUP_UPSTREAM_BASE_URL=http://127.0.0.1:18765
# UA_LOOKUP_PUBLIC_ASSETS_BASE_URL=https://ip.zhongxiaojie.cn
# UA_LOOKUP_DEFAULT_METHOD=ip2location
# UA_LOOKUP_CACHE_TTL=604800

# WordPress database connection (MySQL/MariaDB)
WP_DB_NAME=wordpress
WP_DB_USER=root
WP_DB_PASSWORD=
WP_DB_HOST=127.0.0.1
WP_DB_PORT=3306

# WordPress table prefix, e.g. wp_ / wp123_
WP_TABLE_PREFIX=wp_

# 是否信任反代/CDN 转发头（CF-Connecting-IP / X-Real-IP / X-Forwarded-For），默认开启。
# - 生产推荐开启，并配置 TRUSTED_PROXY_IP_RANGES，只信任你的网关/CDN 回源 IP 段
# - 若 API 不会被公网直连，且 CDN 回源 IP 经常变：可保持开启并留空 TRUSTED_PROXY_IP_RANGES（有伪造风险）
TRUST_PROXY_HEADERS=1
# 反代终止 TLS（如 Nginx/Edge/CDN）时建议开启，配合 X-Forwarded-Proto 识别 https
SECURE_PROXY_SSL_HEADER_ENABLED=1

# 额外输出“真实 IP access log”（Daphne 的 access log 里显示的是 CDN 节点 IP）
# 打开后会在 stdout 输出形如：[realip] ip=... remote=... status=... GET /api/...
REAL_IP_ACCESS_LOG_ENABLED=0

# 受信任反向代理 / CDN 的 IP 段（CIDR，逗号分隔）。
# 仅当请求来源 REMOTE_ADDR 命中这些 IP 段时，后端才会信任 CF-Connecting-IP / X-Real-IP / X-Forwarded-For。
# - 本机 Nginx 反代：127.0.0.1/32,::1/128
# - 生产：把你的 Nginx/网关内网地址段、或 CDN 回源 IP 段加入这里
TRUSTED_PROXY_IP_RANGES=127.0.0.1/32,::1/128

# API 请求签名（HMAC + ts + nonce）——默认关闭
# 注意：这是“请求验签”，不是“返回加密”。建议仅在 HTTPS 下启用。
# API_SIGNING_ENABLED=1
# API_SIGNING_SECRET=change-me-long-random
# 允许客户端时间漂移（秒），超出即拒绝（防离线重放）
# API_SIGNING_TTL_SECONDS=60
# nonce 去重缓存 TTL（秒），建议 &gt;= API_SIGNING_TTL_SECONDS
# API_SIGNING_NONCE_TTL_SECONDS=300
# 需要签名的路径前缀（逗号分隔）
# API_SIGNING_REQUIRED_PREFIXES=/api/
# 免签路径（逗号分隔，严格 path 匹配），例如健康检查：
# API_SIGNING_EXEMPT_PATHS=/api/health/,/api/ping/

# SMTP / Email backend (Django)
# 不配置则不会真的发出邮件（除非你使用本地控制台邮件后端等）。
# EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
# EMAIL_HOST=smtp.example.com
# EMAIL_PORT=587
# EMAIL_USE_TLS=1
# EMAIL_HOST_USER=your-account@example.com
# EMAIL_HOST_PASSWORD=your-app-password
# DEFAULT_FROM_EMAIL="obaby &lt;no-reply@zhongxiaojie.cn&gt;"
#
# 评论回复邮件通知（前台回复他人评论时）
# COMMENT_REPLY_NOTIFICATION_ENABLED=1
# COMMENT_REPLY_EMAIL_FROM="obaby &lt;no-reply@zhongxiaojie.cn&gt;"
# COMMENT_REPLY_EMAIL_HEADER_IMAGE_URL=https://zhongxiaojie.com/wp-content/uploads/2026/01/uugai.com_1661691241113463.png
# COMMENT_REPLY_EMAIL_HEADER_IMAGE_WIDTH=520
# COMMENT_REPLY_EMAIL_HEADER_IMAGE_HEIGHT=180
# COMMENT_REPLY_EMAIL_HEADER_ALT=obaby 𝐢&#x200d;𝐧⃝ void
# COMMENT_REPLY_EMAIL_FOOTER_LINE1=obaby 𝐢&#x200d;𝐧⃝ void
# COMMENT_REPLY_EMAIL_FOOTER_LINK_TEXT=oba.by
#
# 与 WordPress CREN 插件退订链接校验一致（取自 wp-config.php）
# WORDPRESS_AUTH_KEY=
# WORDPRESS_AUTH_SALT=
# 与 WordPress 登录 Cookie（wordpress_logged_in_*）校验一致（同样取自 wp-config.php）
# 推荐配置 LOGGED_IN_KEY / LOGGED_IN_SALT；留空时后端会回退到 AUTH_KEY / AUTH_SALT
# WORDPRESS_LOGGED_IN_KEY=
# WORDPRESS_LOGGED_IN_SALT=

# 服务器状态小组件：统计磁盘路径（Linux "/"；Windows "C:\\")
# SERVER_PROBE_DISK_PATH=/

# <ul class='microblog-shortcode'>
<li> <img alt='' src='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=24&#038;d=initials&#038;r=pg&#038;initials=ro' srcset='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=48&#038;d=initials&#038;r=pg&#038;initials=ro 2x' class='avatar avatar-24 photo' height='24' width='24' /><span class='microblog-shortcode-post-title'> <a href='https://oba.by/microposts/%e7%9c%9f%e9%ba%bb%e4%ba%86%ef%bc%8c%e4%b8%80%e4%b8%aa%e5%8f%91%e7%89%88%e5%8f%91%e4%ba%86%e5%a5%bd%e5%87%a0%e4%b8%aa%e6%9c%88%ef%bc%81%e8%89%b9%ef%bc%81/'>真麻了，一个发版发了好几个月！艹！</a> </span></br><span class='microblog-shortcode-post-content'></br><p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1314" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-scaled.jpg" data-lightbox="gal[1141]" data-lightbox="gal[1132]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1134" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-scaled.jpg" alt="" width="2560" height="1314" srcset="https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-scaled.jpg?v=1776930060 2560w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-300x154.jpg?v=1776930060 300w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-1024x526.jpg?v=1776930060 1024w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-150x77.jpg?v=1776930060 150w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-768x394.jpg?v=1776930060 768w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-1536x789.jpg?v=1776930060 1536w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-2048x1052.jpg?v=1776930060 2048w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-665x341.jpg?v=1776930060 665w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260423-153854@2x-506x260.jpg?v=1776930060 506w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
</span></br></br><span class='microblog-shortcode-commentlink'>  评论： <a href='https://oba.by/microposts/%e7%9c%9f%e9%ba%bb%e4%ba%86%ef%bc%8c%e4%b8%80%e4%b8%aa%e5%8f%91%e7%89%88%e5%8f%91%e4%ba%86%e5%a5%bd%e5%87%a0%e4%b8%aa%e6%9c%88%ef%bc%81%e8%89%b9%ef%bc%81/'><img width='18' height='18' src='https://oba.by/wp-content/plugins/simple-microblogging/bubble-icon.png'>&times;0</a></span>
</li>
</br><hr></br>
<li> <img alt='' src='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=24&#038;d=initials&#038;r=pg&#038;initials=ro' srcset='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=48&#038;d=initials&#038;r=pg&#038;initials=ro 2x' class='avatar avatar-24 photo' height='24' width='24' /><span class='microblog-shortcode-post-title'> <a href='https://oba.by/microposts/%e4%b8%80%e5%88%87%e9%83%bd%e6%98%af%e8%a1%a8%e8%b1%a1/'>一切都是表象</a> </span></br><span class='microblog-shortcode-post-content'></br><p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1.jpg" data-lbwps-width="960" data-lbwps-height="1084" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1.jpg" data-lightbox="gal[1141]" data-lightbox="gal[1128]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1129" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1.jpg" alt="" width="960" height="1084" srcset="https://oba.by/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1.jpg?v=1776921108 960w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1-266x300.jpg?v=1776921108 266w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1-907x1024.jpg?v=1776921108 907w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1-133x150.jpg?v=1776921108 133w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1-768x867.jpg?v=1776921108 768w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1-665x751.jpg?v=1776921108 665w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260420093014_39_62-1-230x260.jpg?v=1776921108 230w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a></p>
</span></br></br><span class='microblog-shortcode-commentlink'>  评论： <a href='https://oba.by/microposts/%e4%b8%80%e5%88%87%e9%83%bd%e6%98%af%e8%a1%a8%e8%b1%a1/'><img width='18' height='18' src='https://oba.by/wp-content/plugins/simple-microblogging/bubble-icon.png'>&times;0</a></span>
</li>
</br><hr></br>
<li> <img alt='' src='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=24&#038;d=initials&#038;r=pg&#038;initials=ro' srcset='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=48&#038;d=initials&#038;r=pg&#038;initials=ro 2x' class='avatar avatar-24 photo' height='24' width='24' /><span class='microblog-shortcode-post-title'> <a href='https://oba.by/microposts/%e4%ba%8c%e6%ac%a1%e5%85%83%e8%b8%a2%e8%b8%8f%e8%88%9e/'>二次元踢踏舞</a> </span></br><span class='microblog-shortcode-post-content'></br><div style="width: 640px;" class="wp-video"><video class="wp-video-shortcode" id="video-790-1" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="https://zhongxiaojie.cn/dance/R%EF%BC%81P%EF%BC%81G%EF%BC%81%E4%BA%8C%E6%AC%A1%E5%85%83%E8%B8%A2%E8%B8%8F%E8%88%9E.mp4?_=1" /><a href="https://zhongxiaojie.cn/dance/R%EF%BC%81P%EF%BC%81G%EF%BC%81%E4%BA%8C%E6%AC%A1%E5%85%83%E8%B8%A2%E8%B8%8F%E8%88%9E.mp4">https://zhongxiaojie.cn/dance/R%EF%BC%81P%EF%BC%81G%EF%BC%81%E4%BA%8C%E6%AC%A1%E5%85%83%E8%B8%A2%E8%B8%8F%E8%88%9E.mp4</a></video></div>
<p>&nbsp;</p>
</span></br></br><span class='microblog-shortcode-commentlink'>  评论： <a href='https://oba.by/microposts/%e4%ba%8c%e6%ac%a1%e5%85%83%e8%b8%a2%e8%b8%8f%e8%88%9e/'><img width='18' height='18' src='https://oba.by/wp-content/plugins/simple-microblogging/bubble-icon.png'>&times;0</a></span>
</li>
</br><hr></br>
<li> <img alt='' src='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=24&#038;d=initials&#038;r=pg&#038;initials=ro' srcset='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=48&#038;d=initials&#038;r=pg&#038;initials=ro 2x' class='avatar avatar-24 photo' height='24' width='24' /><span class='microblog-shortcode-post-title'> <a href='https://oba.by/microposts/%e8%b7%b3%e8%88%9e%ef%bc%9f%e4%b8%8d%e4%bc%9a%e5%95%8a/'>跳舞？不会啊</a> </span></br><span class='microblog-shortcode-post-content'></br><div style="width: 640px;" class="wp-video"><video class="wp-video-shortcode" id="video-787-2" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="https://zhongxiaojie.cn/dance/haitunwu.mp4?_=2" /><a href="https://zhongxiaojie.cn/dance/haitunwu.mp4">https://zhongxiaojie.cn/dance/haitunwu.mp4</a></video></div>
</span></br></br><span class='microblog-shortcode-commentlink'>  评论： <a href='https://oba.by/microposts/%e8%b7%b3%e8%88%9e%ef%bc%9f%e4%b8%8d%e4%bc%9a%e5%95%8a/'><img width='18' height='18' src='https://oba.by/wp-content/plugins/simple-microblogging/bubble-icon.png'>&times;0</a></span>
</li>
</br><hr></br>
<li> <img alt='' src='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=24&#038;d=initials&#038;r=pg&#038;initials=ro' srcset='https://gg.lang.bi/avatar/d6ebc088df916bcc9e8b94a09f9b0f604e57be54b04bd520c6db2492740fc563?s=48&#038;d=initials&#038;r=pg&#038;initials=ro 2x' class='avatar avatar-24 photo' height='24' width='24' /><span class='microblog-shortcode-post-title'> <a href='https://oba.by/microposts/%e8%bf%98%e8%a6%81%e7%bb%a7%e7%bb%ad%e5%87%8f%e5%91%a2/'>还要继续减呢~~</a> </span></br><span class='microblog-shortcode-post-content'></br><p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260331134416_938_45.jpg" data-lbwps-width="960" data-lbwps-height="1708" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260331134416_938_45.jpg" data-lightbox="gal[1141]" data-lightbox="gal[764]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-765" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260331134416_938_45.jpg" alt="" width="960" height="1708" srcset="https://oba.by/wp-content/uploads/2026/03/微信图片_20260331134416_938_45.jpg?v=1774937430 960w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260331134416_938_45-169x300.jpg?v=1774937430 169w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260331134416_938_45-576x1024.jpg?v=1774937430 576w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260331134416_938_45-84x150.jpg?v=1774937430 84w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260331134416_938_45-768x1366.jpg?v=1774937430 768w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260331134416_938_45-863x1536.jpg?v=1774937430 863w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260331134416_938_45-665x1183.jpg?v=1774937430 665w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260331134416_938_45-146x260.jpg?v=1774937430 146w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a></p>
</span></br></br><span class='microblog-shortcode-commentlink'>  评论： <a href='https://oba.by/microposts/%e8%bf%98%e8%a6%81%e7%bb%a7%e7%bb%ad%e5%87%8f%e5%91%a2/'><img width='18' height='18' src='https://oba.by/wp-content/plugins/simple-microblogging/bubble-icon.png'>&times;0</a></span>
</li>
</br><hr></br>
</ul><div id='paging' class='group'><span aria-current="page" class="page-numbers current">1</span>
<a class="page-numbers" href="https://oba.by/category/code-girl/feed//page/2">2</a>
<a class="page-numbers" href="https://oba.by/category/code-girl/feed//page/3">3</a>
<a class="next page-numbers" href="https://oba.by/category/code-girl/feed//page/2">next »</a></div> 列表头像：Gravatar 兼容镜像根（路径同 /avatar/{md5}?s=&amp;d=），默认 gg.lang.bi
# GRAVATAR_AVATAR_BASE_URL=https://gg.lang.bi

# 侧边栏「近期文章」：正文无图时的缩略图回退地址
# SIDEBAR_RECENT_POST_FALLBACK_IMAGE_URL=https://zhongxiaojie.cn/wp-content/uploads/2026/01/...

# 评论反垃圾分类（可选；不配置则不调服务、新评论直接通过）
# BABY_ANTI_SPAM_CLASSIFY_URL=http://192.168.1.8:8765/v1/classify
# BABY_ANTI_SPAM_SECRET=change-me-long-random
# BABY_ANTI_SPAM_TIMEOUT=3

# 同一邮箱+IP 对同一篇文章连续提交的最短间隔（秒，0 关闭，最大 120）；依赖 Django cache
# COMMENT_SUBMIT_COOLDOWN_SECONDS=0

# 前台文章评论列表分页（GET /api/wp/posts/:id/comments/）：按一级评论（线程）分页，每页含该层全部回复；不传 page 时默认最后一页（最新线程）
# WP_COMMENTS_PER_PAGE=50
# 客户端 ?per_page= 的上限（不超过 500）
# WP_COMMENTS_MAX_PER_PAGE=200
# 顶层线程展示：desc=递减（最新在上，默认）；asc=递增（最新在下）
# WP_COMMENTS_ORDER=desc

# Nginx FastCGI 缓存：评论审核通过（comment_approved=1）后清理文章页、首页（可选分类页）
# 与 WordPress 插件「Nginx FastCGI Cache Purge on Comment」类似：HTTP GET {站点}/purge{路径}
# NGINX_CACHE_PURGE_ENABLED=1
# NGINX_PURGE_PUBLIC_BASE_URL=https://你的域名
# NGINX_PURGE_TIMEOUT=2
# NGINX_PURGE_SSL_VERIFY=1
# NGINX_PURGE_CATEGORIES=1
# NGINX_CACHE_FILES_PATH=/var/cache/nginx/allinone

# Kama WP Smile：评论表情包资源（给前端下发，避免硬编码域名）
# 若留空，前端会回退使用自身默认/环境变量配置。
# SMILE_PACK_BASE_URL=https://zhongxiaojie.cn/wp-content/plugins/kama-wp-smile-packs/qip_dark_all/
# SMILE_PACK_EXT=gif
# SMILE_PACK_TOKENS=smile,sad,laugh,rofl,blum,kiss,yes,no,good,bad,unknw,sorry,pardon,wacko,acute,boast,boredom,dash,search,crazy,yess,cool,air_kiss,angel,bb,beach,aggressive,blush,bomb,bravo,buba,bye,cry,curtsey,dance,dash2,declare,diablo,don-t_mention,drinks,focus,fool,friends,gamer,give_rose,heart,help,hi,laugh1,mail,mda,mosking,music,negative,ok,popcorm,punish,rtfm,sarcastic,secret,shock,shout,thank_you,vava,victory,beee,big_boss,wink,yu,cray2,dash3,girl_pinkglassesf,girl_prepare_fish,locomotive,lazy2,agree,feminist,fuk,fuck,jester,hunter,moil,offtopic,paladin,shablon_01,spam,vinsent,warning,yahoo,superman,girl_witch,fans,beta,butcher,elf,first_move,gamer2,girl_cray2,girl_cray,girl_blum,girl_dance,girl_crazy,girl_haha,heat,hysteric,nhl_crach,nhl_fight,pig_ball,aikido,angry2,banned,alcoholic,bb2,flood,gamer3,girl_devil,flirt,girl_cray3,girl_drink,girl_hide,girl_hospital,girl_impossible,girl_in_love,girl_mad,girl_sad,girl_sigh,girl_smile,girl_to_take_umbrage,girl_wacko,lazy1,nono,man_in_love,party,scenic,queen,paint,crazy_pilot,dwarf,hang1,haha,grin,good3</pre>
<p>好处呢，就是所有的系统配置基本都在这个配置文件中控制即可，无需去各种地方设置了，修改之后重启服务即可。</p>
<p>之所以说是玩具，其实我在wp之外添加了另外一个简单的管理后台，这也是为什么选了django 而没有直接用fastapi。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-144020@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1418" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-144020@2x-scaled.jpg" data-lightbox="gal[1141]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1146" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-144020@2x-scaled.jpg" alt="" width="2560" height="1418" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-scaled.jpg?v=1777012872 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-300x166.jpg?v=1777012872 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-1024x567.jpg?v=1777012872 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-150x83.jpg?v=1777012872 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-768x425.jpg?v=1777012872 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-1536x851.jpg?v=1777012872 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-2048x1134.jpg?v=1777012872 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-665x368.jpg?v=1777012872 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-144020@2x-470x260.jpg?v=1777012872 470w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>这个东西最初的目的也不是为了替换wp，所以很多功能也没必要再实现一遍了。基础的操作还是在wp的后台完成。</p>
<p>当然，做完折腾到零点多，补全了一些功能之后，最终还是上线了，这就是目前看到的页面效果，lighthouse测试：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142212@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1601" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142212@2x-scaled.jpg" data-lightbox="gal[1141]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1143" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142212@2x-scaled.jpg" alt="" width="2560" height="1601" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-scaled.jpg?v=1777012855 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-300x188.jpg?v=1777012855 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-1024x640.jpg?v=1777012855 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-150x94.jpg?v=1777012855 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-768x480.jpg?v=1777012855 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-1536x961.jpg?v=1777012855 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-2048x1281.jpg?v=1777012855 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-665x416.jpg?v=1777012855 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142212@2x-416x260.jpg?v=1777012855 416w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>ipv4测试：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142256@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1665" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142256@2x-scaled.jpg" data-lightbox="gal[1141]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1144" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142256@2x-scaled.jpg" alt="" width="2560" height="1665" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-scaled.jpg?v=1777012861 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-300x195.jpg?v=1777012861 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-1024x666.jpg?v=1777012861 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-150x98.jpg?v=1777012861 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-768x500.jpg?v=1777012861 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-1536x999.jpg?v=1777012861 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-2048x1332.jpg?v=1777012861 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-665x433.jpg?v=1777012861 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142256@2x-400x260.jpg?v=1777012861 400w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>ipv6测试：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142337@2x.jpg" data-lbwps-width="2534" data-lbwps-height="1598" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142337@2x.jpg" data-lightbox="gal[1141]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1145" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260424-142337@2x.jpg" alt="" width="2534" height="1598" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x.jpg?v=1777012866 2534w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x-300x189.jpg?v=1777012866 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x-1024x646.jpg?v=1777012866 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x-150x95.jpg?v=1777012866 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x-768x484.jpg?v=1777012866 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x-1536x969.jpg?v=1777012866 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x-2048x1292.jpg?v=1777012866 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x-665x419.jpg?v=1777012866 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260424-142337@2x-412x260.jpg?v=1777012866 412w" sizes="auto, (max-width: 2534px) 100vw, 2534px" /></a></p>
<p>对于wp的主题，也修改了下页面宽度，与现在的vue的页面宽度基本一致了：</p>
<p><a href="http://zhongxiaojie.com" target="_blank" rel="noopener">http://zhongxiaojie.com</a></p>
<p>代码地址：</p>
<p><a href="https://gitee.com/obaby/baby-press-public" target="_blank" rel="noopener">https://gitee.com/obaby/baby-press-public</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/04/1141/feed/</wfw:commentRss>
			<slash:comments>86</slash:comments>
		
		
			</item>
		<item>
		<title>偷梁换柱 &#8212; 解决『出境易暂不支持此应用。』</title>
		<link>https://oba.by/2026/04/990/</link>
					<comments>https://oba.by/2026/04/990/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 07:30:53 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[Pure80]]></category>
		<category><![CDATA[出境易]]></category>
		<category><![CDATA[卓易通]]></category>
		<category><![CDATA[纯血鸿蒙]]></category>
		<category><![CDATA[鸿蒙]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=990</guid>

					<description><![CDATA[前几天去买手机的时候，销售小哥说，如果你不喜欢这个纯血鸿蒙，或者感觉无法满足需求可以回来去二楼，找技术把系统进 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A4093-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1707" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A4093-scaled.jpg" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-996" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A4093-scaled.jpg" alt="" width="2560" height="1707" srcset="https://oba.by/wp-content/uploads/2026/04/30A4093-scaled.jpg?v=1776411017 2560w, https://oba.by/wp-content/uploads/2026/04/30A4093-300x200.jpg?v=1776411017 300w, https://oba.by/wp-content/uploads/2026/04/30A4093-1024x683.jpg?v=1776411017 1024w, https://oba.by/wp-content/uploads/2026/04/30A4093-150x100.jpg?v=1776411017 150w, https://oba.by/wp-content/uploads/2026/04/30A4093-768x512.jpg?v=1776411017 768w, https://oba.by/wp-content/uploads/2026/04/30A4093-1536x1024.jpg?v=1776411017 1536w, https://oba.by/wp-content/uploads/2026/04/30A4093-2048x1365.jpg?v=1776411017 2048w, https://oba.by/wp-content/uploads/2026/04/30A4093-665x443.jpg?v=1776411017 665w, https://oba.by/wp-content/uploads/2026/04/30A4093-390x260.jpg?v=1776411017 390w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>前几天去买手机的时候，销售小哥说，如果你不喜欢这个纯血鸿蒙，或者感觉无法满足需求可以回来去二楼，找技术把系统进行降级。</p>
<p><span id="more-990"></span></p>
<p>当时我在想：对于我这种买手机不怎么玩游戏或者需求没那么多的人来说，应该能解决我的绝大多数需求，毕竟系统上还有 出境易、卓易通。</p>
<p>然而事情总有例外，自己常用的浏览器vivaldi发现竟然无法安装，这就让人非常的抑郁了。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-scaled.jpg" data-lbwps-width="1147" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-scaled.jpg" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-991" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-scaled.jpg" alt="" width="1147" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-scaled.jpg?v=1776410480 1147w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-134x300.jpg?v=1776410480 134w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-459x1024.jpg?v=1776410480 459w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-67x150.jpg?v=1776410480 67w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-768x1714.jpg?v=1776410480 768w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-688x1536.jpg?v=1776410480 688w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-918x2048.jpg?v=1776410480 918w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-665x1484.jpg?v=1776410480 665w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151247_32_62-116x260.jpg?v=1776410480 116w" sizes="auto, (max-width: 1147px) 100vw, 1147px" /></a></p>
<p>下载apk安装的时候提示：出境易暂不支持此应用。</p>
<p>哎，咱们可不兴这么搞啊，这就离谱啦。我已我不稳定的智商来猜测这个东西肯定是有个神马白名单或者黑名单机制，至于黑白名单，到时也没那么关键，大不了就改个包名嘛。然而安装 apktool m的时候同样的提示也出现了，这个东西大概率就是黑名单了。</p>
<p>算鸟，算鸟，直接用模拟器改吧：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222237-497-scaled.png" data-lbwps-width="1440" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222237-497-scaled.png" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-986" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222237-497-scaled.png" alt="" width="1440" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-scaled.png?v=1776349464 1440w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-169x300.png?v=1776349464 169w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-576x1024.png?v=1776349464 576w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-84x150.png?v=1776349464 84w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-768x1365.png?v=1776349464 768w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-864x1536.png?v=1776349464 864w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-1152x2048.png?v=1776349464 1152w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-665x1182.png?v=1776349464 665w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222237-497-146x260.png?v=1776349464 146w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>点击快速编辑：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222250-659-scaled.png" data-lbwps-width="1440" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222250-659-scaled.png" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-987" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222250-659-scaled.png" alt="" width="1440" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-scaled.png?v=1776349473 1440w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-169x300.png?v=1776349473 169w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-576x1024.png?v=1776349473 576w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-84x150.png?v=1776349473 84w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-768x1365.png?v=1776349473 768w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-864x1536.png?v=1776349473 864w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-1152x2048.png?v=1776349473 1152w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-665x1182.png?v=1776349473 665w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222250-659-146x260.png?v=1776349473 146w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>原来的包名：com.vivaldi.brower,咱们假装是uc咋样呢：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222307-315-scaled.png" data-lbwps-width="1440" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222307-315-scaled.png" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-988" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/MuMu-20260416-222307-315-scaled.png" alt="" width="1440" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-scaled.png?v=1776349482 1440w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-169x300.png?v=1776349482 169w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-576x1024.png?v=1776349482 576w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-84x150.png?v=1776349482 84w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-768x1365.png?v=1776349482 768w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-864x1536.png?v=1776349482 864w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-1152x2048.png?v=1776349482 1152w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-665x1182.png?v=1776349482 665w, https://oba.by/wp-content/uploads/2026/04/MuMu-20260416-222307-315-146x260.png?v=1776349482 146w" sizes="auto, (max-width: 1440px) 100vw, 1440px" /></a></p>
<p>反正我也不用uc浏览器，嘎嘎。</p>
<p>修改之后，发送到手机进行安装，一切顺利，嘻嘻：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-scaled.jpg" data-lbwps-width="1147" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-scaled.jpg" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-992" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-scaled.jpg" alt="" width="1147" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-scaled.jpg?v=1776410483 1147w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-134x300.jpg?v=1776410483 134w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-459x1024.jpg?v=1776410483 459w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-67x150.jpg?v=1776410483 67w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-768x1714.jpg?v=1776410483 768w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-688x1536.jpg?v=1776410483 688w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-918x2048.jpg?v=1776410483 918w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-665x1484.jpg?v=1776410483 665w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151248_33_62-116x260.jpg?v=1776410483 116w" sizes="auto, (max-width: 1147px) 100vw, 1147px" /></a></p>
<p><strong>鸿蒙next：我要验牌！牌没有问题！</strong></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-scaled.jpg" data-lbwps-width="1147" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-scaled.jpg" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-995" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-scaled.jpg" alt="" width="1147" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-scaled.jpg?v=1776410824 1147w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-134x300.jpg?v=1776410824 134w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-459x1024.jpg?v=1776410824 459w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-67x150.jpg?v=1776410824 67w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-768x1714.jpg?v=1776410824 768w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-688x1536.jpg?v=1776410824 688w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-918x2048.jpg?v=1776410824 918w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-665x1484.jpg?v=1776410824 665w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417152230_36_62-116x260.jpg?v=1776410824 116w" sizes="auto, (max-width: 1147px) 100vw, 1147px" /></a></p>
<p>尝试同步功能：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-scaled.jpg" data-lbwps-width="1147" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-scaled.jpg" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-993" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-scaled.jpg" alt="" width="1147" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-scaled.jpg?v=1776410486 1147w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-134x300.jpg?v=1776410486 134w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-459x1024.jpg?v=1776410486 459w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-67x150.jpg?v=1776410486 67w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-768x1714.jpg?v=1776410486 768w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-688x1536.jpg?v=1776410486 688w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-918x2048.jpg?v=1776410486 918w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-665x1484.jpg?v=1776410486 665w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151249_34_62-116x260.jpg?v=1776410486 116w" sizes="auto, (max-width: 1147px) 100vw, 1147px" /></a> <a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-scaled.jpg" data-lbwps-width="1147" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-scaled.jpg" data-lightbox="gal[990]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-994" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-scaled.jpg" alt="" width="1147" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-scaled.jpg?v=1776410490 1147w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-134x300.jpg?v=1776410490 134w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-459x1024.jpg?v=1776410490 459w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-67x150.jpg?v=1776410490 67w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-768x1714.jpg?v=1776410490 768w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-688x1536.jpg?v=1776410490 688w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-918x2048.jpg?v=1776410490 918w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-665x1484.jpg?v=1776410490 665w, https://oba.by/wp-content/uploads/2026/04/微信图片_20260417151250_35_62-116x260.jpg?v=1776410490 116w" sizes="auto, (max-width: 1147px) 100vw, 1147px" /></a></p>
<p>完美！</p>
<p>到这里就结束啦，对于同步问题，有的宝子说非得搭梯子，也不一定。可以直接修改hosts，可以在路由器配置或者dns配置，或者神马别的地方配置：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">vivaldi.com. 172.66.165.60
bifrost.vivaldi.com. 31.209.137.10
cdn.jsdelivr.net. 151.101.89.229</pre>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/04/990/feed/</wfw:commentRss>
			<slash:comments>63</slash:comments>
		
		
			</item>
		<item>
		<title>Baby Press &#8212; 前后端分离的WP系统</title>
		<link>https://oba.by/2026/04/933/</link>
					<comments>https://oba.by/2026/04/933/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Tue, 14 Apr 2026 01:53:19 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WP]]></category>
		<category><![CDATA[重构]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=933</guid>

					<description><![CDATA[WP的系统怎么说呢，有时候真的感觉一言难尽，庞杂的功能，丰富的插件、主题。几乎能满足所有人的需求，当然，也能满 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0342-scaled.jpg" data-lbwps-width="1707" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0342-scaled.jpg" data-lightbox="gal[933]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-939" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0342-scaled.jpg" alt="" width="1707" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/330A0342-scaled.jpg?v=1776068795 1707w, https://oba.by/wp-content/uploads/2026/04/330A0342-200x300.jpg?v=1776068795 200w, https://oba.by/wp-content/uploads/2026/04/330A0342-683x1024.jpg?v=1776068795 683w, https://oba.by/wp-content/uploads/2026/04/330A0342-100x150.jpg?v=1776068795 100w, https://oba.by/wp-content/uploads/2026/04/330A0342-768x1152.jpg?v=1776068795 768w, https://oba.by/wp-content/uploads/2026/04/330A0342-1024x1536.jpg?v=1776068795 1024w, https://oba.by/wp-content/uploads/2026/04/330A0342-1365x2048.jpg?v=1776068795 1365w, https://oba.by/wp-content/uploads/2026/04/330A0342-665x998.jpg?v=1776068795 665w, https://oba.by/wp-content/uploads/2026/04/330A0342-173x260.jpg?v=1776068795 173w" sizes="auto, (max-width: 1707px) 100vw, 1707px" /></a></p>
<p>WP的系统怎么说呢，有时候真的感觉一言难尽，庞杂的功能，丰富的插件、主题。几乎能满足所有人的需求，当然，也能满足我的需求。</p>
<p><span id="more-933"></span></p>
<p>之所以要做这么个东西，最主要的是前几天在杜老师的聊天室收到一条消息：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260413-153059@2x.jpg" data-lbwps-width="2022" data-lbwps-height="172" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260413-153059@2x.jpg" data-lightbox="gal[933]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-935" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260413-153059@2x.jpg" alt="" width="2022" height="172" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260413-153059@2x.jpg?v=1776065571 2022w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-153059@2x-300x26.jpg?v=1776065571 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-153059@2x-1024x87.jpg?v=1776065571 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-153059@2x-150x13.jpg?v=1776065571 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-153059@2x-768x65.jpg?v=1776065571 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-153059@2x-1536x131.jpg?v=1776065571 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-153059@2x-665x57.jpg?v=1776065571 665w" sizes="auto, (max-width: 2022px) 100vw, 2022px" /></a></p>
<p>跟随这条消息我也去了解了一下这个东西，按照官方的说法，其实是这么个东西：</p>
<blockquote><p>Cloudflare 将这款项目命名为 <b><a class="RichContent-EntityWord css-b7erz1" href="https://zhida.zhihu.com/search?content_id=272537863&amp;content_type=Article&amp;match_order=1&amp;q=EmDash&amp;zd_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ6aGlkYV9zZXJ2ZXIiLCJleHAiOjE3NzYyMzg0MzQsInEiOiJFbURhc2giLCJ6aGlkYV9zb3VyY2UiOiJlbnRpdHkiLCJjb250ZW50X2lkIjoyNzI1Mzc4NjMsImNvbnRlbnRfdHlwZSI6IkFydGljbGUiLCJtYXRjaF9vcmRlciI6MSwiemRfdG9rZW4iOm51bGx9.hbNLrLtb-W2woQtKCaeh8T7iKQUwMCCBhwPN3gNKYjo&amp;zhida_source=entity" target="_blank" rel="noopener" data-za-not-track-link="true" data-paste-text="true">EmDash</a></b>，将其定位为 <b>WordPress 的精神继承者</b>，这并不是对 WordPress 简单的复刻，而是<b>用现代化技术栈，重新实现一套面向未来的 CMS</b>，并且重点解决了 WordPress 24 年发展中积累的的架构臃肿、安全隐患与性能瓶颈问题。</p></blockquote>
<p>说是高性能的wp，但是实际上跟wp没有任何的关系，除了所谓的精神继承。刚开始我还以为是基于wp的优化，现在看来其实是完全做了另外一套系统，这<strong>精神继承</strong>，可以说是非常抽象了。</p>
<p>再加上 『爱看』在我没有<del>丢失以前的网站数据</del>的时候，就一直建议可以自己写个系统。重新搭建之后，他又提过几次：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="494" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-scaled.jpg" data-lightbox="gal[933]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-936" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-scaled.jpg" alt="" width="2560" height="494" srcset="https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-scaled.jpg?v=1776065812 2560w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-300x58.jpg?v=1776065812 300w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-1024x198.jpg?v=1776065812 1024w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-150x29.jpg?v=1776065812 150w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-768x148.jpg?v=1776065812 768w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-1536x296.jpg?v=1776065812 1536w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-2048x395.jpg?v=1776065812 2048w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-665x128.jpg?v=1776065812 665w, https://oba.by/wp-content/uploads/2026/04/UserslingPictures截图Jietu20260413-151422@2x-1348x260.jpg?v=1776065812 1348w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>既然 cf可以这么干，那么自己当然也可以这么干。只是，这次自己既不想重写，又不想使用php，于是，我换了最熟悉的django+vue3来实现这个新的系统，至于数据库当然还是用wp原来的。既然设计好这一切，那么声息的就是让ai开始动工了。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260413-162804@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1615" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260413-162804@2x-scaled.jpg" data-lightbox="gal[933]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-940" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260413-162804@2x-scaled.jpg" alt="" width="2560" height="1615" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-scaled.jpg?v=1776068916 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-300x189.jpg?v=1776068916 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-1024x646.jpg?v=1776068916 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-150x95.jpg?v=1776068916 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-768x485.jpg?v=1776068916 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-1536x969.jpg?v=1776068916 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-2048x1292.jpg?v=1776068916 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-665x420.jpg?v=1776068916 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260413-162804@2x-412x260.jpg?v=1776068916 412w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>当然在开发过程中，不可避免的要面临一些问题，例如wp的shortcode，主题插件的一些功能：相册、代码高亮等等。不过这些东西都可以重新通过python进行处理和渲染。还有一些php的原生小组件渲染就有些困难了，这些只能通过其他方法进行实现。例如归属地、ua，访客信息等等。暂时尚未完成，为了处理ip归属地查询，目前将插件的归属地查询已经独立成了python服务，开源地址：<a href="https://cnb.cool/oba.by/baby-ip-location" target="_blank" rel="noopener">https://cnb.cool/oba.by/baby-ip-location</a></p>
<p>测试地址：<a href="https://ip.zhongxiaojie.cn" target="_blank" rel="noopener">https://ip.zhongxiaojie.cn</a></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1846" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-scaled.jpg" data-lightbox="gal[933]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-941" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-scaled.jpg" alt="" width="2560" height="1846" srcset="https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-scaled.jpg?v=1776069378 2560w, https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-300x216.jpg?v=1776069378 300w, https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-1024x739.jpg?v=1776069378 1024w, https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-150x108.jpg?v=1776069378 150w, https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-768x554.jpg?v=1776069378 768w, https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-1536x1108.jpg?v=1776069378 1536w, https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-2048x1477.jpg?v=1776069378 2048w, https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-665x480.jpg?v=1776069378 665w, https://oba.by/wp-content/uploads/2026/04/2026-04-13-16.35.48-ip.zhongxiaojie.cn-bd6eded2e665-360x260.jpg?v=1776069378 360w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>当前测试页面效果：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-14-09.51.23-i.zhongxiaojie.cn-7455ee5b34d3.jpg" data-lbwps-width="3128" data-lbwps-height="16742" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-14-09.51.23-i.zhongxiaojie.cn-7455ee5b34d3.jpg" data-lightbox="gal[933]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-949" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-14-09.51.23-i.zhongxiaojie.cn-7455ee5b34d3.jpg" alt="" width="3128" height="16742" /></a></p>
<p>访问地址：</p>
<p><a href="https://i.zhongxiaojie.cn" target="_blank" rel="noopener">https://i.zhongxiaojie.cn</a></p>
<p>代码暂未开源，还在继续完善。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/04/933/feed/</wfw:commentRss>
			<slash:comments>79</slash:comments>
		
		
			</item>
		<item>
		<title>Baby Anti-Spam 自建反垃圾评论系统</title>
		<link>https://oba.by/2026/04/798/</link>
					<comments>https://oba.by/2026/04/798/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 10:05:11 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[akismet]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[垃圾评论]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[机器学习]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=798</guid>

					<description><![CDATA[很久之前，就经常收到akismet的授权提醒，对应一个错误码10010。 刚开始还以为是多域名访问导致的授权校 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-scaled.jpg" data-lbwps-width="1649" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-scaled.jpg" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-807" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-scaled.jpg" alt="" width="1649" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/330A0347-scaled.jpg?v=1775469075 1649w, https://oba.by/wp-content/uploads/2026/04/330A0347-193x300.jpg?v=1775469075 193w, https://oba.by/wp-content/uploads/2026/04/330A0347-659x1024.jpg?v=1775469075 659w, https://oba.by/wp-content/uploads/2026/04/330A0347-97x150.jpg?v=1775469075 97w, https://oba.by/wp-content/uploads/2026/04/330A0347-768x1193.jpg?v=1775469075 768w, https://oba.by/wp-content/uploads/2026/04/330A0347-989x1536.jpg?v=1775469075 989w, https://oba.by/wp-content/uploads/2026/04/330A0347-1319x2048.jpg?v=1775469075 1319w, https://oba.by/wp-content/uploads/2026/04/330A0347-665x1033.jpg?v=1775469075 665w, https://oba.by/wp-content/uploads/2026/04/330A0347-167x260.jpg?v=1775469075 167w" sizes="auto, (max-width: 1649px) 100vw, 1649px" /></a></p>
<p>很久之前，就经常收到akismet的授权提醒，对应一个错误码10010。</p>
<p><span id="more-798"></span></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58.png" data-lbwps-width="2540" data-lbwps-height="303" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-799" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58.png" alt="" width="2540" height="303" srcset="https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58.png?v=1775467728 2540w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-300x36.png?v=1775467728 300w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-1024x122.png?v=1775467728 1024w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-150x18.png?v=1775467728 150w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-768x92.png?v=1775467728 768w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-1536x183.png?v=1775467728 1536w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-2048x244.png?v=1775467728 2048w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-665x79.png?v=1775467728 665w" sizes="auto, (max-width: 2540px) 100vw, 2540px" /></a></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0.png" data-lbwps-width="1121" data-lbwps-height="1398" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-801" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0.png" alt="" width="1121" height="1398" srcset="https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0.png?v=1775467732 1121w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-241x300.png?v=1775467732 241w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-821x1024.png?v=1775467732 821w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-120x150.png?v=1775467732 120w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-768x958.png?v=1775467732 768w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-665x829.png?v=1775467732 665w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-208x260.png?v=1775467732 208w" sizes="auto, (max-width: 1121px) 100vw, 1121px" /></a></p>
<p>刚开始还以为是多域名访问导致的授权校验出问题了。后来换了n个key，同时添加了插件hook掉所有的垃圾评论检测逻辑，让全部走统一的域名，结果前几天又收到这个提醒了。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533.png" data-lbwps-width="952" data-lbwps-height="1556" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-820" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533.png" alt="" width="952" height="1556" srcset="https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533.png?v=1775478429 952w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-184x300.png?v=1775478429 184w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-627x1024.png?v=1775478429 627w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-92x150.png?v=1775478429 92w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-768x1255.png?v=1775478429 768w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-940x1536.png?v=1775478429 940w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-665x1087.png?v=1775478429 665w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-159x260.png?v=1775478429 159w" sizes="auto, (max-width: 952px) 100vw, 952px" /></a></p>
<p>插件代码：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php
/**
 * Plugin Name: Akismet 单一主域名（多域名站点）
 * Description: 当站点配置了多个域名时，强制发往 Akismet 的请求只使用一个主域名，避免被计为多站点触发 10010。
 * Version: 1.0
 * Author: obaby
 *
 * 使用：在下方设置 AKISMET_CANONICAL_HOME 为主域名（或留空则用 WordPress「设置」里的站点地址）。
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * 主域名（规范 URL，不要末尾斜杠）。留空则使用 get_option( 'home' )。
 * 例如: https://www.example.com
 */
if ( ! defined( 'AKISMET_CANONICAL_HOME' ) ) {
    define( 'AKISMET_CANONICAL_HOME', 'https://zhongxiaojie.cn' );
}

/**
 * 获取发往 Akismet 时使用的唯一主域名 URL。
 */
function akismet_single_domain_get_canonical_home() {
    $home = AKISMET_CANONICAL_HOME;
    if ( $home === '' || $home === null ) {
        $home = get_option( 'home' );
    }
    return untrailingslashit( $home );
}

/**
 * 将任意 URL 替换为使用主域名的版本（只改 host，保留 path/query）。
 */
function akismet_single_domain_normalize_url( $url, $canonical_home ) {
    if ( empty( $url ) || ! is_string( $url ) ) {
        return $url;
    }
    $parsed = wp_parse_url( $url );
    $canon  = wp_parse_url( $canonical_home );
    if ( empty( $canon['scheme'] ) || empty( $canon['host'] ) ) {
        return $url;
    }
    $scheme = isset( $parsed['scheme'] ) ? $parsed['scheme'] : $canon['scheme'];
    $host   = $canon['host'];
    $path   = isset( $parsed['path'] ) ? $parsed['path'] : '/';
    $query  = isset( $parsed['query'] ) ? '?' . $parsed['query'] : '';
    $frag   = isset( $parsed['fragment'] ) ? '#' . $parsed['fragment'] : '';
    return $scheme . '://' . $host . $path . $query . $frag;
}

/**
 * 统一 verify-key / get-subscription / get-stats 的 blog 为主域名。
 */
add_filter( 'akismet_request_args', function ( $request_args, $path ) {
    $paths = array( 'verify-key', 'get-subscription', 'get-stats' );
    if ( ! in_array( $path, $paths, true ) ) {
        return $request_args;
    }
    $canon = akismet_single_domain_get_canonical_home();
    if ( ! empty( $request_args['blog'] ) ) {
        $request_args['blog'] = $canon;
    }
    return $request_args;
}, 10, 2 );

/**
 * 统一 comment-check（以及 recheck）的 blog、permalink，并把请求里的 HTTP_HOST 等改为主域名。
 */
add_filter( 'akismet_request_args', function ( $request_args, $path ) {
    if ( $path !== 'comment-check' ) {
        return $request_args;
    }
    $canon = akismet_single_domain_get_canonical_home();
    $parsed = wp_parse_url( $canon );
    if ( empty( $parsed['host'] ) ) {
        return $request_args;
    }
    $canon_host = $parsed['host'];

    $request_args['blog'] = $canon;
    if ( ! empty( $request_args['permalink'] ) ) {
        $request_args['permalink'] = akismet_single_domain_normalize_url( $request_args['permalink'], $canon );
    }

    // 让服务端看到的“当前请求”也统一为主域名，减少被计为多站点
    if ( isset( $request_args['HTTP_HOST'] ) ) {
        $request_args['HTTP_HOST'] = $canon_host;
    }
    if ( isset( $request_args['REQUEST_URI'] ) ) {
        $uri = $request_args['REQUEST_URI'];
        $request_args['REQUEST_URI'] = ( is_string( $uri ) &amp;&amp; ( $p = wp_parse_url( $uri, PHP_URL_PATH ) ) !== null ) ? $p : '/';
    }
    if ( isset( $request_args['DOCUMENT_URI'] ) ) {
        $uri = $request_args['DOCUMENT_URI'];
        $request_args['DOCUMENT_URI'] = ( is_string( $uri ) &amp;&amp; ( $p = wp_parse_url( $uri, PHP_URL_PATH ) ) !== null ) ? $p : '/';
    }
    return $request_args;
}, 10, 2 );

/**
 * 统一 submit-spam / submit-ham 的 blog、permalink。
 */
add_filter( 'akismet_request_args', function ( $request_args, $path ) {
    if ( ! in_array( $path, array( 'submit-spam', 'submit-ham' ), true ) ) {
        return $request_args;
    }
    $canon = akismet_single_domain_get_canonical_home();
    $request_args['blog'] = $canon;
    if ( ! empty( $request_args['permalink'] ) ) {
        $request_args['permalink'] = akismet_single_domain_normalize_url( $request_args['permalink'], $canon );
    }
    return $request_args;
}, 10, 2 );
</pre>
<p>这次授权的密钥撑得时间稍微长了点，但是最终还是收到了这个提醒，意思是需要订购商业版授权。我这个人站点为了发垃圾评论订购一个商业版授权，确实有些难以接受。</p>
<p>于是，我决定自建反垃圾评论系统，基于scikit-learn实现了现在的这套垃圾评论检测系统，训练数据一部分来源于github的开源数据，另外一个就是我自己博客的评论数据。为了保证样本正例和负例数量差别不至于过大，经过各种方式进行了多轮数据清洗。</p>
<p>如果想要评论识别更加准确，可以提供自己的博客评论数据，如果能提供垃圾评论更好。现在欠缺的主要是垃圾评论数据，正常的评论数据我已经提供几千条数据。</p>
<p>效果测试：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-scaled.png" data-lbwps-width="2560" data-lbwps-height="1395" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-scaled.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-808" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-scaled.png" alt="" width="2560" height="1395" srcset="https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-scaled.png?v=1775469300 2560w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-300x163.png?v=1775469300 300w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-1024x558.png?v=1775469300 1024w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-150x82.png?v=1775469300 150w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-768x419.png?v=1775469300 768w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-1536x837.png?v=1775469300 1536w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-2048x1116.png?v=1775469300 2048w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-665x362.png?v=1775469300 665w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-477x260.png?v=1775469300 477w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-scaled.png" data-lbwps-width="2560" data-lbwps-height="1474" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-scaled.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-809" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-scaled.png" alt="" width="2560" height="1474" srcset="https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-scaled.png?v=1775469393 2560w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-300x173.png?v=1775469393 300w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-1024x589.png?v=1775469393 1024w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-150x86.png?v=1775469393 150w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-768x442.png?v=1775469393 768w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-1536x884.png?v=1775469393 1536w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-2048x1179.png?v=1775469393 2048w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-665x383.png?v=1775469393 665w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-452x260.png?v=1775469393 452w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>测试地址：<a href="https://anti-spam.zhongxiaojie.cn/test/spam" target="_blank" rel="noopener">https://anti-spam.zhongxiaojie.cn/test/spam</a></p>
<p>简介：</p>
<p>面向 <strong>中英混合</strong> 评论的 WordPress 垃圾识别方案：PHP 插件在评论入库前调用 <strong>本机 Python 服务</strong>，由小型多语种向量模型 + 分类器（或演示用规则）给出垃圾概率。</p>
<p>适合评论量不大、单机部署（例如 <strong>4 核 / 8GB RAM</strong> 的 Ubuntu），服务与 WordPress 同机时使用 <code>127.0.0.1</code> 即可。</p>
<p>目录结构：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">baby_anti_spam/
├── README.md
├── screenshots/             # 文档：服务启动与 curl 自测示意
│   ├── service.png
│   └── test.png
├── service/                 # Python FastAPI 侧车服务
│   ├── .env.example
│   ├── requirements.txt
│   ├── requirements-ml.txt
│   ├── run.py
│   ├── app/
│   │   └── stats_backends/   # 统计存储：sqlite / mysql
│   └── scripts/
│       ├── init_stats_mysql.sql
│       └── init_stats_mysql.py
│       ├── train_sklearn.py
│       ├── download_embedding_model.py
│       └── download_embedding_model.sh
└── wordpress/baby-anti-spam/
    └── baby-anti-spam.php # WordPress 插件</pre>
<p>关键配置：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="md">| 变量 | 说明 |
|------|------|
| `SPAM_HOST` | 监听地址，同机建议 `127.0.0.1` |
| `SPAM_PORT` | 端口，默认 `8765` |
| `SPAM_API_SECRET` | **单密钥模式（兼容旧版）**：未配置 `SPAM_API_KEYS` 且未配置 `SPAM_API_KEYS_FILE` 时，仅此密钥有效，等价于 name=`default`、不限流（`max_rpm=0`）。与 WP 插件里填写的密钥一致 |
| `SPAM_API_KEYS` | **多密钥**：JSON 数组。每项为 `name`（唯一，用于统计与限流分组）、`key` 或 `secret`（与请求头一致）、`max_rpm` 或 `rpm`（每分钟最大请求数，`0` 表示不限制）。与 `SPAM_API_KEYS_FILE` 合并时：**先读文件条目，再追加本变量** |
| `SPAM_API_KEYS_FILE` | 可选，指向 JSON 文件，根节点为与上表相同结构的**数组**。文件必须存在，否则进程启动失败 |
| `SPAM_MODEL_PATH` | 训练得到的 `*.joblib` 路径；留空则取决于 `SPAM_FALLBACK_RULES` |
| `SPAM_FALLBACK_RULES` | 无模型文件时是否启用内置极简规则（演示用）；生产训练后应设为 `false` 并配置 `SPAM_MODEL_PATH` |
| `SPAM_LABEL_THRESHOLD` | 可选，默认 `0.8`。`spam_score` ≥ 此值时 JSON 中 `label` 为 `spam`，否则为 `normal` |
| `SPAM_DFA_ENABLED` | 默认 `true`。为 `true` 时使用 `dfa-python-filter/keywords` 做敏感词检测；命中则直接 `spam_score=1`、`detail=dfa_sensitive`（早于 sklearn） |
| `SPAM_DFA_KEYWORDS_PATH` | 可选，自定义敏感词文件路径；留空则用 `service/dfa-python-filter/keywords` |
| `SPAM_NON_CHINESE_FLOOR_ENABLED` | 默认 `true`。为 `true` 时若合并后的 author/email/url/text 中**无任何 CJK 表意字符**（主要针对中文训练语料），则将 `spam_score` **至少**抬到 `SPAM_NON_CHINESE_SPAM_FLOOR` |
| `SPAM_NON_CHINESE_SPAM_FLOOR` | 默认 `0.9`。与上项配合，在「无中文」评论上与 sklearn / 规则分取 `max` |
| `SPAM_STATS_ENABLED` | 默认 `true`。为 `true` 时记录每次**成功**返回的 `/v1/classify` 请求与响应（失败 / 401 不落库），并允许 `/v1/mark-spam` 写入 `spam_marks` 表 |
| `SPAM_STATS_BACKEND` | `sqlite`（默认）或 `mysql`。选 `mysql` 时需安装 `pymysql`（已在 `requirements.txt`）并配置下方 MySQL 变量 |
| `SPAM_STATS_DB_PATH` | 仅 `sqlite`：数据库文件路径；留空则为 `service/data/stats.sqlite`（已加入 `.gitignore`） |
| `SPAM_STATS_MYSQL_HOST` / `SPAM_STATS_MYSQL_PORT` | 仅 `mysql`：默认 `127.0.0.1` / `3306` |
| `SPAM_STATS_MYSQL_USER` / `SPAM_STATS_MYSQL_PASSWORD` | 仅 `mysql`：连接账号（`user` 必填） |
| `SPAM_STATS_MYSQL_DATABASE` | 仅 `mysql`：库名（必填），默认示例 `baby_spam_stats` |
| `SPAM_STATS_MYSQL_CHARSET` | 仅 `mysql`：默认 `utf8mb4` |</pre>
<p>&nbsp;</p>
<p>系统服务启动截图：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-scaled.png" data-lbwps-width="2560" data-lbwps-height="1341" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-scaled.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-803" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-scaled.png" alt="" width="2560" height="1341" srcset="https://oba.by/wp-content/uploads/2026/04/service-scaled.png?v=1775467740 2560w, https://oba.by/wp-content/uploads/2026/04/service-300x157.png?v=1775467740 300w, https://oba.by/wp-content/uploads/2026/04/service-1024x536.png?v=1775467740 1024w, https://oba.by/wp-content/uploads/2026/04/service-150x79.png?v=1775467740 150w, https://oba.by/wp-content/uploads/2026/04/service-768x402.png?v=1775467740 768w, https://oba.by/wp-content/uploads/2026/04/service-1536x804.png?v=1775467740 1536w, https://oba.by/wp-content/uploads/2026/04/service-2048x1072.png?v=1775467740 2048w, https://oba.by/wp-content/uploads/2026/04/service-665x348.png?v=1775467740 665w, https://oba.by/wp-content/uploads/2026/04/service-497x260.png?v=1775467740 497w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>wp插件配置：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939.png" data-lbwps-width="1029" data-lbwps-height="1724" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-810" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939.png" alt="" width="1029" height="1724" srcset="https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939.png?v=1775469593 1029w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-179x300.png?v=1775469593 179w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-611x1024.png?v=1775469593 611w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-90x150.png?v=1775469593 90w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-768x1287.png?v=1775469593 768w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-917x1536.png?v=1775469593 917w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-665x1114.png?v=1775469593 665w, https://oba.by/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-155x260.png?v=1775469593 155w" sizes="auto, (max-width: 1029px) 100vw, 1029px" /></a></p>
<p>项目地址：<a href="https://anti-spam.zhongxiaojie.cn" target="_blank" rel="noopener">https://anti-spam.zhongxiaojie.cn</a></p>
<p>代码地址：<a href="https://cnb.cool/oba.by/baby-wp-anti-spam" target="_blank" rel="noopener">https://cnb.cool/oba.by/baby-wp-anti-spam</a></p>
<p>说明：如果自己不想训练数据，下载发布版的spam_pipeline.joblib 放入指定目录下配置服务启动即可，<a class="hover:underline hover:text-link truncate" href="https://cnb.cool/oba.by/baby-wp-anti-spam/-/releases/download/v2.0/baby-anti-spam.zip" download="">baby-anti-spam.zip</a> 为wp插件。</p>
<p>训练耗时大约11分钟：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45.png" data-lbwps-width="2088" data-lbwps-height="112" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-811" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45.png" alt="" width="2088" height="112" srcset="https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45.png?v=1775469858 2088w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-300x16.png?v=1775469858 300w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-1024x55.png?v=1775469858 1024w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-150x8.png?v=1775469858 150w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-768x41.png?v=1775469858 768w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-1536x82.png?v=1775469858 1536w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-2048x110.png?v=1775469858 2048w, https://oba.by/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-665x36.png?v=1775469858 665w" sizes="auto, (max-width: 2088px) 100vw, 2088px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/04/798/feed/</wfw:commentRss>
			<slash:comments>60</slash:comments>
		
		
			</item>
		<item>
		<title>下载微信公众号的视频</title>
		<link>https://oba.by/2026/04/778/</link>
					<comments>https://oba.by/2026/04/778/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Thu, 02 Apr 2026 08:46:14 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[公众号]]></category>
		<category><![CDATA[微信]]></category>
		<category><![CDATA[爬虫]]></category>
		<category><![CDATA[视频]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=778</guid>

					<description><![CDATA[作为一个专业的程序媛，前端时间折腾龙虾转发公众号的文章到闺蜜圈wiki，之前已经处理了图片和文章的问题，今天转 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1758-scaled.jpg" data-lbwps-width="1707" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1758-scaled.jpg" data-lightbox="gal[778]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-785" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1758-scaled.jpg" alt="" width="1707" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/30A1758-scaled.jpg?v=1775119561 1707w, https://oba.by/wp-content/uploads/2026/04/30A1758-200x300.jpg?v=1775119561 200w, https://oba.by/wp-content/uploads/2026/04/30A1758-683x1024.jpg?v=1775119561 683w, https://oba.by/wp-content/uploads/2026/04/30A1758-100x150.jpg?v=1775119561 100w, https://oba.by/wp-content/uploads/2026/04/30A1758-768x1152.jpg?v=1775119561 768w, https://oba.by/wp-content/uploads/2026/04/30A1758-1024x1536.jpg?v=1775119561 1024w, https://oba.by/wp-content/uploads/2026/04/30A1758-1365x2048.jpg?v=1775119561 1365w, https://oba.by/wp-content/uploads/2026/04/30A1758-665x998.jpg?v=1775119561 665w, https://oba.by/wp-content/uploads/2026/04/30A1758-173x260.jpg?v=1775119561 173w" sizes="auto, (max-width: 1707px) 100vw, 1707px" /></a></p>
<p>作为一个专业的程序媛，前端时间折腾龙虾转发公众号的文章到闺蜜圈wiki，之前已经处理了图片和文章的问题，今天转发的时候发现另外一个问题：文章里面的视频无法正常播放。</p>
<p><span id="more-778"></span></p>
<p>刚开始的时候想着直接去chrome的缓存里面找，但是试了下chrome://cache发现无效，又不想去找插件来干这件事情。直接去调试工具找对应的视频地址：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161705-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="674" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161705-scaled.jpg" data-lightbox="gal[778]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-780" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161705-scaled.jpg" alt="" width="2560" height="674" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-scaled.jpg?v=1775118092 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-300x79.jpg?v=1775118092 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-1024x270.jpg?v=1775118092 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-150x40.jpg?v=1775118092 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-768x202.jpg?v=1775118092 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-1536x405.jpg?v=1775118092 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-2048x539.jpg?v=1775118092 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-665x175.jpg?v=1775118092 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161705-987x260.jpg?v=1775118092 987w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>然而直接贴到地址栏，直接报403了。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161653-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1277" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161653-scaled.jpg" data-lightbox="gal[778]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-779" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161653-scaled.jpg" alt="" width="2560" height="1277" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-scaled.jpg?v=1775118088 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-300x150.jpg?v=1775118088 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-1024x511.jpg?v=1775118088 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-150x75.jpg?v=1775118088 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-768x383.jpg?v=1775118088 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-1536x766.jpg?v=1775118088 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-2048x1022.jpg?v=1775118088 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-665x332.jpg?v=1775118088 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161653-521x260.jpg?v=1775118088 521w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>唉，好尴尬，既然有本地缓存文件了。那么直接尝试将接收到的数据流写入到文件呗。找了半天没发现怎么直接把请求到的数据写入到文件，点击开始播放等待缓冲结束。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161721-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1449" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161721-scaled.jpg" data-lightbox="gal[778]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-781" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161721-scaled.jpg" alt="" width="2560" height="1449" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-scaled.jpg?v=1775118097 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-300x170.jpg?v=1775118097 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-1024x580.jpg?v=1775118097 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-150x85.jpg?v=1775118097 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-768x435.jpg?v=1775118097 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-1536x870.jpg?v=1775118097 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-2048x1160.jpg?v=1775118097 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-665x377.jpg?v=1775118097 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161721-459x260.jpg?v=1775118097 459w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>加载完了右下角的数据也就有了，直接切换成base64，复制粘贴：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161959-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1377" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161959-scaled.jpg" data-lightbox="gal[778]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-782" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-161959-scaled.jpg" alt="" width="2560" height="1377" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-scaled.jpg?v=1775118102 2560w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-300x161.jpg?v=1775118102 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-1024x551.jpg?v=1775118102 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-150x81.jpg?v=1775118102 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-768x413.jpg?v=1775118102 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-1536x826.jpg?v=1775118102 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-2048x1101.jpg?v=1775118102 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-665x358.jpg?v=1775118102 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-161959-483x260.jpg?v=1775118102 483w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>然而，尝试decode 之后，播放不了，缺少mp4的头文件，这就挺奇怪的。文件头哪里去了？my_video为通过代码下载的mp4，video为通过base64 处理的图片。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-163158.jpg" data-lbwps-width="1824" data-lbwps-height="1186" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-163158.jpg" data-lightbox="gal[778]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-783" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-163158.jpg" alt="" width="1824" height="1186" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163158.jpg?v=1775118782 1824w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163158-300x195.jpg?v=1775118782 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163158-1024x666.jpg?v=1775118782 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163158-150x98.jpg?v=1775118782 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163158-768x499.jpg?v=1775118782 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163158-1536x999.jpg?v=1775118782 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163158-665x432.jpg?v=1775118782 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163158-400x260.jpg?v=1775118782 400w" sizes="auto, (max-width: 1824px) 100vw, 1824px" /></a> <a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-163245.jpg" data-lbwps-width="2218" data-lbwps-height="1346" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-163245.jpg" data-lightbox="gal[778]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-784" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260402-163245.jpg" alt="" width="2218" height="1346" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245.jpg?v=1775118787 2218w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245-300x182.jpg?v=1775118787 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245-1024x621.jpg?v=1775118787 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245-150x91.jpg?v=1775118787 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245-768x466.jpg?v=1775118787 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245-1536x932.jpg?v=1775118787 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245-2048x1243.jpg?v=1775118787 2048w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245-665x404.jpg?v=1775118787 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260402-163245-428x260.jpg?v=1775118787 428w" sizes="auto, (max-width: 2218px) 100vw, 2218px" /></a></p>
<p>文章测试地址：<a href="https://mp.weixin.qq.com/s/heoer_zm4SFwFKsk4tRecQ" target="_blank" rel="noopener">https://mp.weixin.qq.com/s/heoer_zm4SFwFKsk4tRecQ</a></p>
<p>看了下是video标签实现的：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">&lt;div data-v-c66e8e28="" class="js_inner inner not_fullscreen"&gt;&lt;div data-v-c66e8e28="" class="js_video_poster video_poster"&gt;&lt;div data-v-c66e8e28="" class="video_mask"&gt;&lt;/div&gt;&lt;video data-v-c66e8e28="" src="https://mpvideo.qpic.cn/0bc3pidsgaahauamxiglsruvo6wden5aoiya.f10002.mp4?dis_k=247900efb8791f0718998ea0813793c9&amp;amp;dis_t=1775118363&amp;amp;play_scene=10120&amp;amp;auth_info=d9/5u/dlYUBWn6qY0Sp2SXM9PUdEOj5CZmQ3H2k2TzNOXXtjTwYQen0+WTMXEzdWIDNuS0hkIHgTMSlENWAcfUpBcQ==&amp;amp;auth_key=ed4a91866522f27b4b89c5e71e04d115&amp;amp;vid=wxv_4453415887525888005&amp;amp;format_id=10002&amp;amp;support_redirect=0&amp;amp;mmversion=false" poster="http://mmbiz.qpic.cn/sz_mmbiz_jpg/GAVxEAgJstytcf0uF3dpdZKia9G96C3loxCNaBrbFLHCiak3GvJDfASC7uYqNjjAZ5e2OHSmHoBQrONRJ8UIq6icJjjFXMfUBtdhy7VWlfb3MM/0?wx_fmt=jpeg&amp;amp;wxfrom=16" webkit-playsinline="isiPhoneShowPlaysinline" playsinline="isiPhoneShowPlaysinline" preload="metadata" crossorigin="anonymous" controlslist="nodownload" class="" style="display: block; width: 655px; height: 492px;"&gt; 您的浏览器不支持 video 标签 &lt;/video&gt;&lt;/div&gt;&lt;div data-v-f4ee5450="" data-v-c66e8e28="" class="video_poster__info__play" style="display: none;"&gt;&lt;i data-v-f4ee5450="" data-v-c66e8e28="" class=""&gt;&lt;/i&gt;&lt;/div&gt;&lt;div data-v-f4ee5450="" data-v-c66e8e28="" class="video_poster__info" style="display: none;"&gt;&lt;p data-v-f4ee5450="" data-v-c66e8e28="" class="video_poster__info__title" style="font-size: 17px;"&gt;继续观看&lt;/p&gt;&lt;p data-v-f4ee5450="" data-v-c66e8e28="" class="video_poster__info__desc" style="font-size: 12px;"&gt; 孤独症，就是不爱说话吗？ &lt;/p&gt;&lt;/div&gt;&lt;div data-v-f4ee5450="" data-v-c66e8e28="" class="video_poster__info__mask" style="width: 100%; display: none;"&gt;&lt;/div&gt;&lt;/div&gt;</pre>
<p>还是说着这个东西还有另外的处理逻辑？哪位大神知道原因还望不吝赐教。</p>
<p>既然decode不行，那就直接上代码吧：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">#!/usr/bin/env python3
"""
下载 mpvideo.qpic.cn 等需 Referer 的 MP4（微信视频 CDN）。

Author: obaby
  https://zhongxiaojie.cn
  https://oba.by
"""

import argparse
import sys
import urllib.error
import urllib.request

# 与常见微信内嵌页一致，避免 403
DEFAULT_REFERER = "https://mp.weixin.qq.com/"
DEFAULT_UA = (
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 "
    "MicroMessenger/7.0.20"
)


def main() -&gt; None:
    p = argparse.ArgumentParser(description="带 Referer 下载 mpvideo MP4")
    p.add_argument("url", help="完整 mp4 URL（含查询参数）")
    p.add_argument(
        "-o",
        "--output",
        default="downloaded.mp4",
        help="保存路径（默认 downloaded.mp4）",
    )
    p.add_argument("--referer", default=DEFAULT_REFERER, help="Referer 头")
    p.add_argument("--user-agent", default=DEFAULT_UA, help="User-Agent")
    args = p.parse_args()

    req = urllib.request.Request(
        args.url,
        headers={
            "User-Agent": args.user_agent,
            "Referer": args.referer,
        },
        method="GET",
    )
    try:
        with urllib.request.urlopen(req, timeout=120) as resp:
            data = resp.read()
    except urllib.error.HTTPError as e:
        print(f"HTTP {e.code}: {e.reason}", file=sys.stderr)
        sys.exit(1)

    out = open(args.output, "wb") if args.output != "-" else sys.stdout.buffer
    try:
        out.write(data)
    finally:
        if out is not sys.stdout.buffer:
            out.close()
            print(f"已写入 {args.output}，{len(data)} 字节")
            if len(data) &gt;= 8 and data[4:8] == b"ftyp":
                print("魔数检测：疑似标准 MP4（含 ftyp）")


if __name__ == "__main__":
    main()</pre>
<p>现在就可以下载之后，上传了，发布的文章地址：</p>
<blockquote class="wp-embedded-content" data-secret="fGnk8M16Ip"><p><a href="https://wiki.guimiquan.cn/archives/1514">孤独症，就是不爱说话吗？</a></p></blockquote>
<p><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="《 孤独症，就是不爱说话吗？ 》—知识库" src="https://wiki.guimiquan.cn/archives/1514/embed#?secret=BVZ7TQH5Zb#?secret=fGnk8M16Ip" data-secret="fGnk8M16Ip" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/04/778/feed/</wfw:commentRss>
			<slash:comments>52</slash:comments>
		
		<enclosure url="https://mpvideo.qpic.cn/0bc3pidsgaahauamxiglsruvo6wden5aoiya.f10002.mp4?dis_k=247900efb8791f0718998ea0813793c9&#038;ampdis_t=1775118363&#038;ampplay_scene=10120&#038;ampauth_info=d9/5u/dlYUBWn6qY0Sp2SXM9PUdEOj5CZmQ3H2k2TzNOXXtjTwYQen0+WTMXEzdWIDNuS0hkIHgTMSlENWAcfUpBcQ==&#038;ampauth_key=ed4a91866522f27b4b89c5e71e04d115&#038;ampvid=wxv_4453415887525888005&#038;ampformat_id=10002&#038;ampsupport_redirect=0&#038;ampmmversion=false" length="0" type="video/mp4" />

			</item>
		<item>
		<title>弱弱的问一下，我的网站怎么被镜像了嗫？</title>
		<link>https://oba.by/2026/04/768/</link>
					<comments>https://oba.by/2026/04/768/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Wed, 01 Apr 2026 03:18:37 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[openresty]]></category>
		<category><![CDATA[网站镜像]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=768</guid>

					<description><![CDATA[其实网站被镜像这件事情，本身没什么稀奇的，如果想搭建一个镜像网站，从零开始也不过个吧小时的时间。 之所以写这个 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0374-scaled.jpg" data-lbwps-width="1671" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0374-scaled.jpg" data-lightbox="gal[768]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-771" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0374-scaled.jpg" alt="" width="1671" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/330A0374-scaled.jpg?v=1775013505 1671w, https://oba.by/wp-content/uploads/2026/04/330A0374-196x300.jpg?v=1775013505 196w, https://oba.by/wp-content/uploads/2026/04/330A0374-668x1024.jpg?v=1775013505 668w, https://oba.by/wp-content/uploads/2026/04/330A0374-98x150.jpg?v=1775013505 98w, https://oba.by/wp-content/uploads/2026/04/330A0374-768x1177.jpg?v=1775013505 768w, https://oba.by/wp-content/uploads/2026/04/330A0374-1002x1536.jpg?v=1775013505 1002w, https://oba.by/wp-content/uploads/2026/04/330A0374-1337x2048.jpg?v=1775013505 1337w, https://oba.by/wp-content/uploads/2026/04/330A0374-665x1019.jpg?v=1775013505 665w, https://oba.by/wp-content/uploads/2026/04/330A0374-170x260.jpg?v=1775013505 170w" sizes="auto, (max-width: 1671px) 100vw, 1671px" /></a></p>
<p>其实网站被镜像这件事情，本身没什么稀奇的，如果想搭建一个镜像网站，从零开始也不过个吧小时的时间。</p>
<p><span id="more-768"></span></p>
<p>之所以写这个东西，是因为最近有看到好几个人被镜像的，<a href="https://www.aiwazi.com/2986.html" target="_blank" rel="noopener">这一个（爱娃子）</a>，还有 <a href="https://me.xu19.com/mirror-blog/" target="_blank" rel="noopener">这一个</a>（我是军爸）。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260401-110831.jpg" data-lbwps-width="1718" data-lbwps-height="882" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260401-110831.jpg" data-lightbox="gal[768]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-769" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260401-110831.jpg" alt="" width="1718" height="882" srcset="https://oba.by/wp-content/uploads/2026/04/Jietu20260401-110831.jpg?v=1775012949 1718w, https://oba.by/wp-content/uploads/2026/04/Jietu20260401-110831-300x154.jpg?v=1775012949 300w, https://oba.by/wp-content/uploads/2026/04/Jietu20260401-110831-1024x526.jpg?v=1775012949 1024w, https://oba.by/wp-content/uploads/2026/04/Jietu20260401-110831-150x77.jpg?v=1775012949 150w, https://oba.by/wp-content/uploads/2026/04/Jietu20260401-110831-768x394.jpg?v=1775012949 768w, https://oba.by/wp-content/uploads/2026/04/Jietu20260401-110831-1536x789.jpg?v=1775012949 1536w, https://oba.by/wp-content/uploads/2026/04/Jietu20260401-110831-665x341.jpg?v=1775012949 665w, https://oba.by/wp-content/uploads/2026/04/Jietu20260401-110831-506x260.jpg?v=1775012949 506w" sizes="auto, (max-width: 1718px) 100vw, 1718px" /></a></p>
<p>不过，既然还有人有疑惑，那就简单的教一下大家怎么来镜像个网站吧。</p>
<p>为此，我创建了一个开源项目：</p>
<h3>OpenResty + OpenCC 反向代理简繁转换</h3>
<hr />
<p>基于 <strong>OpenResty</strong> 反向代理上游站点，对 <strong>HTML 正文</strong> 做 <strong>OpenCC</strong> 简繁转换（默认：<strong>简体 → 繁体</strong>，配置文件为 <code>s2t.json</code>）。适合在不改源站的情况下，为访客提供另一种字体习惯版本。</p>
<h2><a id="user-content-功能概览" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#%E5%8A%9F%E8%83%BD%E6%A6%82%E8%A7%88"></a>功能概览</h2>
<table>
<thead>
<tr>
<th>能力</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>反向代理</strong></td>
<td>HTTPS 回源（示例站点：<code>zhongxiaojie.cn</code>），客户端走本机证书与域名。</td>
</tr>
<tr>
<td><strong>HTML 简繁转换</strong></td>
<td>仅当 <code>Content-Type</code> 含 <code>text/html</code> 时对整页做 OpenCC UTF-8 转换。</td>
</tr>
<tr>
<td><strong>gzip 解压</strong></td>
<td>通过 Lua <code>zlib</code> 尝试解压响应体（与去掉 <code>Content-Encoding</code> 的配合视上游行为而定）。</td>
</tr>
<tr>
<td><strong>链接与图片 URL 保护</strong></td>
<td>转换前将 <code>href</code> / <code>src</code> / <code>poster</code> / <code>data-src</code> / <code>srcset</code> 及裸 <code>http(s)://</code> 链接替换为占位符，转换后还原，<strong>避免路径或查询串中的汉字被改写导致 404</strong>。</td>
</tr>
<tr>
<td><strong>IPv4 优先解析</strong></td>
<td><code>resolver … ipv6=off</code> + 变量 <code>proxy_pass</code>，减轻云主机无 IPv6 时对 AAAA 连接失败的问题。</td>
</tr>
<tr>
<td><strong>静态资源直过</strong></td>
<td>图片、CSS、JS、字体等扩展名单独 <code>location</code>，<strong>不做</strong> OpenCC，减轻负担、避免误伤二进制。</td>
</tr>
<tr>
<td><strong>动态库加载</strong></td>
<td>对 <code>libopencc.so</code> 按常见路径依次尝试 <code>ffi.load</code>，降低找不到共享库的概率。</td>
</tr>
</tbody>
</table>
<h3><a id="user-content-限制与说明" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#%E9%99%90%E5%88%B6%E4%B8%8E%E8%AF%B4%E6%98%8E"></a>限制与说明</h3>
<ul>
<li><strong>JSON / JS / CSS 内嵌字符串</strong>若不在上述保护规则内，仍可能被转换；重要数据建议不要用全文 HTML OpenCC 硬转。</li>
<li><strong>内联样式</strong> <code>style="background:url(...)"</code> 未单独做保护，若遇少数破图可再扩展规则。</li>
<li>转换配置在 <code>nginx/opencc/opencc-filter.lua</code> 中的 <code>OPENCC_CONFIG</code>（默认 <code>/usr/share/opencc/s2t.json</code>）；若需 <strong>繁体 → 简体</strong> 可改为 <code>t2s.json</code> 等（需系统已安装对应 OpenCC 数据文件）。</li>
</ul>
<h2><a id="user-content-部署要求" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#%E9%83%A8%E7%BD%B2%E8%A6%81%E6%B1%82"></a>部署要求</h2>
<ul>
<li><strong>OpenResty</strong>（带 <code>lua-nginx-module</code>）。</li>
<li><strong>OpenCC</strong> 运行时：系统安装 <code>libopencc.so</code> 与词典数据（如 <code>/usr/share/opencc/*.json</code>），并保证 <strong>worker 进程能加载到 <code>.so</code></strong>（见下文「共享库」）。</li>
<li><strong>Lua</strong> 可 <code>require('zlib')</code> 的模块（用于 <code>zlib.inflate</code>，若无 gzip 体则 <code>pcall</code> 失败会跳过解压，不影响后续逻辑）。</li>
<li>上游为 HTTPS 时，本机需能解析并访问该域名（已用 <code>resolver</code> 时 VARIABLE 形式 <code>proxy_pass</code> 才会走指定 resolver）。</li>
</ul>
<h2><a id="user-content-部署步骤" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#%E9%83%A8%E7%BD%B2%E6%AD%A5%E9%AA%A4"></a>部署步骤</h2>
<h3><a id="user-content-1-安装-opencc-与数据文件" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#1-%E5%AE%89%E8%A3%85-opencc-%E4%B8%8E%E6%95%B0%E6%8D%AE%E6%96%87%E4%BB%B6"></a>1. 安装 OpenCC 与数据文件</h3>
<p>以 Debian / Ubuntu 为例（包名因发行版略有差异）：</p>
<div class="markdown-code-block">
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo apt update 
sudo apt install -y libopencc1.1 opencc # 或 libopencc2 等，以仓库为准 
或者手工复制 lib64目录下的文件到 脚本对应的路径就是这个 /usr/lib64</pre>
<p>&nbsp;</p>
</div>
<p>确认存在词典，例如：</p>
<div class="markdown-code-block">
<pre class="EnlighterJSRAW" data-enlighter-language="generic">ls /usr/share/opencc/s2t.json</pre>
<p>&nbsp;</p>
</div>
<h3><a id="user-content-2-确保能找到-libopenccso" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#2-%E7%A1%AE%E4%BF%9D%E8%83%BD%E6%89%BE%E5%88%B0-libopenccso"></a>2. 确保能找到 <code>libopencc.so</code></h3>
<p>若日志出现 <code>libopencc.so: cannot open shared object file</code>：</p>
<ul>
<li>将库放在系统默认搜索路径，例如 Ubuntu amd64：</li>
<li>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">ldconfig -p | grep opencc</pre>
<p>&nbsp;</li>
<li>若库仅在 <code>/usr/lib64</code> 等非默认路径，可执行（与仓库 <code>fix.md</code> 一致）：</li>
<li>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">echo '/usr/lib64' | sudo tee /etc/ld.so.conf.d/usr-lib64.conf sudo ldconfig</pre>
<p>&nbsp;</li>
<li>或在 <strong>OpenResty 的 systemd 单元</strong> 中设置 <code class="EnlighterJSRAW" data-enlighter-language="generic">Environment="LD_LIBRARY_PATH=/usr/lib64:/usr/local/lib"</code>  后重启。</li>
</ul>
<p>脚本内已对多路径做了 <code>ffi.load</code> 尝试；仍失败时请对照 <code>ldd</code> 与 <code>opencc</code> 包实际安装位置排查。</p>
<h3><a id="user-content-3-部署-lua-脚本" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#3-%E9%83%A8%E7%BD%B2-lua-%E8%84%9A%E6%9C%AC"></a>3. 部署 Lua 脚本</h3>
<p>将 <code>nginx/opencc/opencc-filter.lua</code> 复制到服务端约定路径（与 nginx 配置一致），例如：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo mkdir -p /usr/local/openresty/lua 
sudo cp nginx/opencc/opencc-filter.lua /usr/local/openresty/lua/opencc-filter.lua</pre>
<p>按需修改脚本顶部 <code>OPENCC_CONFIG</code> 指向本机实际的 JSON 配置。</p>
<h3><a id="user-content-4-合并-nginx--openresty-配置" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#4-%E5%90%88%E5%B9%B6-nginx--openresty-%E9%85%8D%E7%BD%AE"></a>4. 合并 Nginx / OpenResty 配置</h3>
<ul>
<li>将 <code>zero.zhongxiaojie.cn.conf</code> 中的 <code>server</code> 块纳入主配置（<code>include</code> 或粘贴到 <code>nginx.conf</code> 的 <code>http {}</code> 下）。</li>
<li>修改 <strong>证书路径</strong>、<strong>日志路径</strong>、<strong>上游域名</strong> <code>zhongxiaojie.cn</code>、以及 <strong><code>body_filter_by_lua_file</code></strong> 的路径，使其与当前环境一致。</li>
<li><code>header_filter_by_lua</code> 中去除 <code>Content-Encoding</code>，便于对明文 HTML 做处理；若上游与解压逻辑不匹配，需自行观察是否需要调整。</li>
</ul>
<h3><a id="user-content-5-校验并重载" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#5-%E6%A0%A1%E9%AA%8C%E5%B9%B6%E9%87%8D%E8%BD%BD"></a>5. 校验并重载</h3>
<div class="markdown-code-block">
<div class="markdown-code-block-copy-btn">
<pre class="EnlighterJSRAW" data-enlighter-language="generic">sudo /usr/local/openresty/nginx/sbin/nginx -t 
sudo /usr/local/openresty/nginx/sbin/nginx -s reload 
# 或 systemctl reload openresty</pre>
<p>&nbsp;</p>
</div>
</div>
<h3><a id="user-content-6-验证" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#6-%E9%AA%8C%E8%AF%81"></a>6. 验证</h3>
<ul>
<li>浏览器访问你的站点，查看页面简繁是否符合预期。</li>
<li>检查 <strong>图片与站内链接</strong>是否正常（尤其含中文或 <code>%</code> 编码的路径）。</li>
<li><code>error.log</code> 中不应再出现 OpenCC 库加载失败或大量 IPv6 unreachable（在无 IPv6 环境）。</li>
</ul>
<h2><a id="user-content-配置项速查" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#%E9%85%8D%E7%BD%AE%E9%A1%B9%E9%80%9F%E6%9F%A5"></a>配置项速查</h2>
<table>
<thead>
<tr>
<th>项目</th>
<th>位置</th>
</tr>
</thead>
<tbody>
<tr>
<td>OpenCC 配置 JSON</td>
<td><code>opencc-filter.lua</code> → <code>OPENCC_CONFIG</code></td>
</tr>
<tr>
<td>Lua 脚本路径</td>
<td><code>zero.zhongxiaojie.cn.conf</code> → <code>body_filter_by_lua_file</code></td>
</tr>
<tr>
<td>上游站点</td>
<td><code>set $upstream_host …</code> 与 <code>proxy_pass https://$upstream_host$request_uri</code></td>
</tr>
<tr>
<td>DNS / 仅 IPv4</td>
<td><code>resolver 223.5.5.5 8.8.8.8 valid=300s ipv6=off</code></td>
</tr>
<tr>
<td>不参与转换的静态文件</td>
<td>`location ~* .(gif</td>
</tr>
</tbody>
</table>
<h2><a id="user-content-故障排查" class="anchor" href="https://gitee.com/obaby/baby-website-mirroring-tool#%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5"></a>故障排查</h2>
<table>
<thead>
<tr>
<th>现象</th>
<th>可能原因</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>libopencc.so</code> 找不到</td>
<td>未安装包、<code>ldconfig</code> 未包含库目录，或需 <code>LD_LIBRARY_PATH</code></td>
</tr>
<tr>
<td>body_filter 报错、栈指向 <code>ffi.load</code></td>
<td>同上；或架构不一致（如 32/64 位混用）</td>
</tr>
<tr>
<td>上游连接 IPv6 失败</td>
<td>已用 <code>ipv6=off</code> + 变量 <code>proxy_pass</code>；仍失败则检查防火墙与 DNS</td>
</tr>
<tr>
<td>图片 404</td>
<td>历史上多为 OpenCC 改了 URL 内汉字；当前脚本对常见属性已做保护，若仍有个别，检查是否来自 CSS <code>url()</code> 或 JS 动态拼接</td>
</tr>
</tbody>
</table>
<hr />
<p>如需改为其他域名、证书路径或 <code>t2s</code> 转换方向，只需改配置文件与 <code>OPENCC_CONFIG</code>，无需改 OpenResty 核心。</p>
<p>实际效果：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-01-11.13.33-zero.zhongxiaojie.cn-5e3a0545c205-scaled.jpg" data-lbwps-width="571" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-01-11.13.33-zero.zhongxiaojie.cn-5e3a0545c205-scaled.jpg" data-lightbox="gal[768]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-770" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/2026-04-01-11.13.33-zero.zhongxiaojie.cn-5e3a0545c205-scaled.jpg" alt="" width="571" height="2560" srcset="https://oba.by/wp-content/uploads/2026/04/2026-04-01-11.13.33-zero.zhongxiaojie.cn-5e3a0545c205-scaled.jpg?v=1775013228 571w, https://oba.by/wp-content/uploads/2026/04/2026-04-01-11.13.33-zero.zhongxiaojie.cn-5e3a0545c205-67x300.jpg?v=1775013228 67w, https://oba.by/wp-content/uploads/2026/04/2026-04-01-11.13.33-zero.zhongxiaojie.cn-5e3a0545c205-457x2048.jpg?v=1775013228 457w, https://oba.by/wp-content/uploads/2026/04/2026-04-01-11.13.33-zero.zhongxiaojie.cn-5e3a0545c205-665x2983.jpg?v=1775013228 665w, https://oba.by/wp-content/uploads/2026/04/2026-04-01-11.13.33-zero.zhongxiaojie.cn-5e3a0545c205-58x260.jpg?v=1775013228 58w" sizes="auto, (max-width: 571px) 100vw, 571px" /></a></p>
<p>开源项目地址：<a href="https://gitee.com/obaby/baby-website-mirroring-tool" target="_blank" rel="noopener">https://gitee.com/obaby/baby-website-mirroring-tool</a></p>
<p>参考链接：https://blog.csdn.net/wzj_110/article/details/127758020</p>
<p>https://blog.rexskz.info/support-traditional-chinese-using-openresty-and-opencc.html</p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/04/768/feed/</wfw:commentRss>
			<slash:comments>93</slash:comments>
		
		
			</item>
		<item>
		<title>m3u8 downloader v26.03.28</title>
		<link>https://oba.by/2026/03/741/</link>
					<comments>https://oba.by/2026/03/741/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Sun, 29 Mar 2026 13:58:39 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[m3u8]]></category>
		<category><![CDATA[视频下载]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=741</guid>

					<description><![CDATA[基于 ffmpeg 的 m3u8 / 归档页解析下载工具，支持单链接、批量 CSV/文本、自定义输出目录与 f [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/330A0371-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1707" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/330A0371-scaled.jpg" data-lightbox="gal[741]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-742" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/330A0371-scaled.jpg" alt="" width="2560" height="1707" srcset="https://oba.by/wp-content/uploads/2026/03/330A0371-scaled.jpg?v=1774792562 2560w, https://oba.by/wp-content/uploads/2026/03/330A0371-300x200.jpg?v=1774792562 300w, https://oba.by/wp-content/uploads/2026/03/330A0371-1024x683.jpg?v=1774792562 1024w, https://oba.by/wp-content/uploads/2026/03/330A0371-150x100.jpg?v=1774792562 150w, https://oba.by/wp-content/uploads/2026/03/330A0371-768x512.jpg?v=1774792562 768w, https://oba.by/wp-content/uploads/2026/03/330A0371-1536x1024.jpg?v=1774792562 1536w, https://oba.by/wp-content/uploads/2026/03/330A0371-2048x1365.jpg?v=1774792562 2048w, https://oba.by/wp-content/uploads/2026/03/330A0371-665x443.jpg?v=1774792562 665w, https://oba.by/wp-content/uploads/2026/03/330A0371-390x260.jpg?v=1774792562 390w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>基于 <strong>ffmpeg</strong> 的 m3u8 / 归档页解析下载工具，支持单链接、批量 CSV/文本、自定义输出目录与 ffmpeg 路径。</p>
<p><span id="more-741"></span></p>
<table>
<thead>
<tr>
<th>参数</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>-i</code></td>
<td>输入：直链 m3u8、含 <code>archives</code> 的归档详情页、或带 <code>cms_player</code> 的播放页；也支持 <code>.mp4</code> / <code>.avi</code> / <code>.mov</code> / <code>.mpeg</code> 直链（走 HTTP 分段下载，非 ffmpeg）</td>
</tr>
<tr>
<td><code>-o</code></td>
<td>输出文件名（自动补 <code>.mp4</code>）；对部分模式用于覆盖默认标题名</td>
</tr>
<tr>
<td><code>-p</code></td>
<td>输出目录；可为本机路径或 UNC（如 <code>\\服务器\共享\目录</code>）</td>
</tr>
<tr>
<td><code>-f</code></td>
<td>批量输入文件：<code>.csv</code> 或纯文本（每行一个链接）</td>
</tr>
<tr>
<td><code>-m</code></td>
<td>指定 ffmpeg 可执行文件路径</td>
</tr>
</tbody>
</table>
<p><strong>注意：</strong> 必须提供 <code>-i</code> 或 <code>-f</code> 之一。</p>
<div class="relative cnb-markdown-heading group">
<h3 class="cnb-markdown-heading-com">单条示例</h3>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">python m3u8_downloader.py -i "https://example.com/video.m3u8?token=xxx" -o myvideo -p D:\Videos</pre>
<p>&nbsp;</p>
<p>批量 CSV</p>
</div>
<div class="relative cnb-markdown-heading group">
<p>&nbsp;</p>
</div>
<ul>
<li>编码建议 <strong>UTF-8（含 BOM 亦可）</strong>，表头需包含列 <strong><code>link</code></strong>；可选列 <strong><code>name</code></strong>（用于在部分逻辑里拼接输出名后缀，空单元格按空字符串处理，不会出现 <code>nan</code> 文件名）。</li>
<li>会跳过空的 <code>link</code> 或内容为 <code>link</code> 的占位行。</li>
<li>按行 <strong>顺序执行</strong>：上一任务结束（含 ffmpeg）后才会处理下一行。</li>
</ul>
<div class="relative">
<pre class="EnlighterJSRAW" data-enlighter-language="generic">python m3u8_downloader.py -f list.csv -p "\\192.168.1.12\media\Videos"</pre>
<p>&nbsp;</p>
</div>
<pre class="group"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;">纯文本列表</span></pre>
<div class="relative cnb-markdown-heading group">
<p>&nbsp;</p>
</div>
<p>每行一个 URL，行为与逐次 <code>-i</code> 类似；可通过 <code>-o</code> 传入统一输出名（视链接类型而定）。</p>
<div class="relative cnb-markdown-heading group">
<h2 class="cnb-markdown-heading-com">功能说明</h2>
<p>&nbsp;</p>
</div>
<div class="relative cnb-markdown-heading group">
<h3 class="cnb-markdown-heading-com">链接类型与行为</h3>
<p>&nbsp;</p>
</div>
<ol>
<li><strong><code>.m3u8</code> 直链</strong><br />
使用 ffmpeg 拉流并 remux 为 <code>.mp4</code>（<code>-c copy</code>）。</li>
<li><strong>URL 中含 <code>archives</code></strong>（归档站 / bl05 类页面）<br />
请求页面，解析多个 <code>div.dplayer</code> 的 <code>data-config</code>，得到多路 m3u8；按路依次下载，文件名一般为 <strong>页面标题 + 序号</strong>，并经 <code>safe_mp4_filename</code> 净化。</li>
<li><strong>其它播放页</strong>（非 archives）<br />
解析 <code>var cms_player = {...}</code> 的 JSON，取 <code>url</code> 作为 m3u8，再走 ffmpeg。</li>
<li><strong><code>.mp4</code> 等直链</strong><br />
使用 <code>requests</code> 分段下载（<code>file_download.download_from_url</code>），带 tqdm 进度条，<strong>不经过 ffmpeg</strong>。</li>
</ol>
<div class="relative cnb-markdown-heading group">
<h3 class="cnb-markdown-heading-com">页面编码</h3>
<p>&nbsp;</p>
</div>
<p>抓取 HTML 时依次尝试 <strong>UTF-8 → UTF-8-sig → gb18030</strong>，减轻标题乱码。</p>
<div class="relative cnb-markdown-heading group">
<h3 class="cnb-markdown-heading-com">输出文件名</h3>
<p>&nbsp;</p>
</div>
<ul>
<li>去除 Windows 非法字符，过长截断并可带 crc 后缀兜底。</li>
<li>对「UTF-8 被误当成 latin-1」类乱码标题做启发式纠正（日志中可能出现 <code>[F] 标题疑似 UTF-8/latin-1 乱码，已尝试纠正</code>）。</li>
</ul>
<div class="relative cnb-markdown-heading group">
<h3 class="cnb-markdown-heading-com">覆盖策略</h3>
<p>&nbsp;</p>
</div>
<ul>
<li>若目标 <code>.mp4</code> <strong>已存在</strong>（<code>os.path.isfile</code>），<strong>跳过</strong>该次下载。</li>
<li>调用 ffmpeg 时带 <strong><code>-n</code></strong>：不在终端交互询问覆盖；若因路径编码等导致检测不一致，ffmpeg 侧也会拒绝覆盖而非静默覆盖。</li>
</ul>
<div class="relative cnb-markdown-heading group">
<h3 class="cnb-markdown-heading-com">本地 m3u8 文件</h3>
<p>&nbsp;</p>
</div>
<p><code>-f</code> 指向 <code>.m3u8</code> / <code>.m3u</code> 时，当前代码分支为占位（<code>pass</code>），尚未实现。</p>
<div class="relative cnb-markdown-heading group">
<h2 class="cnb-markdown-heading-com">目录说明</h2>
<p>&nbsp;</p>
</div>
<table>
<thead>
<tr>
<th>路径（相对程序目录）</th>
<th>用途</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>bin/ffmpeg.exe</code></td>
<td>Windows 打包/放置 ffmpeg 的常见位置</td>
</tr>
<tr>
<td><code>download/m3u8_files</code></td>
<td>内部与 <code>make_dir</code> 相关的子目录逻辑</td>
</tr>
<tr>
<td><code>download/mp4</code></td>
<td>未指定 <code>-p</code> 时的默认输出目录</td>
</tr>
</tbody>
</table>
<p>下载地址：</p>
<p><a href="https://www.123912.com/s/ucY7Vv-njQAA?pwd=HwGK#" target="_blank" rel="noopener">https://www.123912.com/s/ucY7Vv-njQAA?pwd=HwGK#</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/03/741/feed/</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title>🦞龙虾养殖小技巧</title>
		<link>https://oba.by/2026/03/684/</link>
					<comments>https://oba.by/2026/03/684/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Wed, 25 Mar 2026 07:21:21 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[openclaw]]></category>
		<category><![CDATA[龙虾]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=684</guid>

					<description><![CDATA[在深入体验这个东西之前，其实我并未对龙虾抱有太高的期望。不过这几天实际使用下来，感觉还算可以，最起码没那么智障 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260320095759_609_42.jpg" data-lbwps-width="1280" data-lbwps-height="2397" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260320095759_609_42.jpg" data-lightbox="gal[684]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-632" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260320095759_609_42.jpg" alt="" width="1280" height="2397" srcset="https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42.jpg 1280w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42-160x300.jpg 160w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42-547x1024.jpg 547w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42-80x150.jpg 80w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42-768x1438.jpg 768w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42-820x1536.jpg 820w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42-1094x2048.jpg 1094w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42-665x1245.jpg 665w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260320095759_609_42-139x260.jpg 139w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p>在深入体验这个东西之前，其实我并未对龙虾抱有太高的期望。不过这几天实际使用下来，感觉还算可以，最起码没那么智障，一些简单的事情也能给处理好。</p>
<p><span id="more-684"></span></p>
<p>然而，龙虾虽好，但是养殖却还是稍显麻烦。尤其是系统配置不高的情况下，最开始的时候一切都配置好了，结果在某天晚上gateway就再也启动不了了，启动的的时候就报内存溢出。cpu和内存都直接跑满，等降下来之后，龙虾也跟着死了。刚开始以为是配置问题，改错东西导致启动失败了，结果在回滚镜像之后依然报错，这个镜像是刚安装好的时候创建的镜像。那么此时就有另外一个问题了，同样的镜像为什么系统重启之后就启动不了了？</p>
<p>当时没想这么多，解决办法是备份memory文件等进行重装，好在重装之后接本的功能和代码都在，让龙虾从新加载配置文件，也恢复到了之前的状态。不过，在重装的时候npm源也是个问题，可以考虑直接修改系统的npm源：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">npm config set registry https://registry.npmmirror.com</pre>
<p>检查修改是否生效：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">npm config get registry</pre>
<p>另外一个，那就是我给龙虾外层套了一层认证，当然这个做法有点傻，但是呢。这些乱七八糟的东西直接暴露出来总是多少感觉有点问题，于是还是套了一层nginx的认证。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-145723-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1430" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-145723-scaled.jpg" data-lightbox="gal[684]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-686" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-145723-scaled.jpg" alt="" width="2560" height="1430" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-scaled.jpg?v=1774421873 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-300x168.jpg?v=1774421873 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-1024x572.jpg?v=1774421873 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-150x84.jpg?v=1774421873 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-768x429.jpg?v=1774421873 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-1536x858.jpg?v=1774421873 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-2048x1144.jpg?v=1774421873 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-665x371.jpg?v=1774421873 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-145723-465x260.jpg?v=1774421873 465w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>毕竟，前几天周鸿祎还吆喝发现了龙虾的oday漏洞。</p>
<p>相关登录界面实现参考：<a href="https://cnb.cool/oba.by/baby-claw" target="_blank" rel="noopener">https://cnb.cool/oba.by/baby-claw</a></p>
<p>然而，安装之后，昨天尝试更新龙虾，结果更新之后重启又开始报内存溢出，这就有点尴尬了，直接运行doctor：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">ubuntu@VM-0-11-ubuntu:~$ openclaw doctor

<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f99e.png" alt="🦞" class="wp-smiley" style="height: 1em; max-height: 1em;" /> OpenClaw 2026.3.23-2 (77e4) — I'm like tmux: confusing at first, then suddenly you can't live without me.

▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██
██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██
██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f99e.png" alt="🦞" class="wp-smiley" style="height: 1em; max-height: 1em;" /> OPENCLAW <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f99e.png" alt="🦞" class="wp-smiley" style="height: 1em; max-height: 1em;" />                    
 
┌  OpenClaw doctor
│
◇  Update ──────────────────────────────────────────────────────────────────────────────────╮
│                                                                                           │
│  This install is not a git checkout.                                                      │
│  Run `openclaw update` to update via your package manager (npm/pnpm), then rerun doctor.  │
│                                                                                           │
├───────────────────────────────────────────────────────────────────────────────────────────╯
│
◇  Startup optimization ─────────────────────────────────────────────────────────────────────╮
│                                                                                            │
│  - NODE_COMPILE_CACHE is not set; repeated CLI runs can be slower on small hosts (Pi/VM).  │
│  - OPENCLAW_NO_RESPAWN is not set to 1; set it to avoid extra startup overhead from        │
│    self-respawn.                                                                           │
│  - Suggested env for low-power hosts:                                                      │
│    export NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache                               │
│    mkdir -p /var/tmp/openclaw-compile-cache                                                │
│    export OPENCLAW_NO_RESPAWN=1                                                            │
│                                                                                            │
├────────────────────────────────────────────────────────────────────────────────────────────╯
13:24:32 [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclaw-qqbot (/home/ubuntu/.openclaw/extensions/openclaw-qqbot/index.ts). Set plugins.allow to explicit trusted ids.
[qqbot-channel-api] Registered QQ channel API proxy tool
[qqbot-remind] Registered QQBot remind tool
│
◇  Archive 1 orphan transcript file in ~/.openclaw/agents/main/sessions? This only renames them to *.deleted.&lt;timestamp&gt;.
│  No
│
◇  State integrity ─────────────────────────────────────────────────────────────────────────╮
│                                                                                           │
│  - OAuth dir not present (~/.openclaw/credentials). Skipping create because no            │
│    WhatsApp/pairing channel config is active.                                             │
│  - Found 1 orphan transcript file in ~/.openclaw/agents/main/sessions.                    │
│    These .jsonl files are no longer referenced by sessions.json, so they are not part of  │
│    any active session history.                                                            │
│    Doctor can archive them safely by renaming each file to *.deleted.&lt;timestamp&gt;.         │
│    Examples: 9ede0dd4-5344-4156-a156-a9035538b1cb0d.jsonl                                   │
│                                                                                           │
├───────────────────────────────────────────────────────────────────────────────────────────╯
│
◇  Security ─────────────────────────────────╮
│                                            │
│  - No channel security warnings detected.  │
│  - Run: openclaw security audit --deep     │
│                                            │
├────────────────────────────────────────────╯
│
◇  Systemd ───────────────────────────────────────────────────────────────────────────╮
│                                                                                     │
│  Gateway runs as a systemd user service. Without lingering, systemd stops the user  │
│  session on logout/idle and kills the Gateway.                                      │
│  We can enable lingering now (may require sudo; writes /var/lib/systemd/linger).    │
│                                                                                     │
├─────────────────────────────────────────────────────────────────────────────────────╯
│
◇  Enable systemd lingering for ubuntu?
│  Yes
│
◇  Systemd ───────────────────────────────╮
│                                         │
│  Enabled systemd lingering for ubuntu.  │
│                                         │
├─────────────────────────────────────────╯</pre>
<p>这时候才发现关键性的几行：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">◇  Startup optimization ─────────────────────────────────────────────────────────────────────╮
│                                                                                            │
│  - NODE_COMPILE_CACHE is not set; repeated CLI runs can be slower on small hosts (Pi/VM).  │
│  - OPENCLAW_NO_RESPAWN is not set to 1; set it to avoid extra startup overhead from        │
│    self-respawn.                                                                           │
│  - Suggested env for low-power hosts:                                                      │
│    export NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache                               │
│    mkdir -p /var/tmp/openclaw-compile-cache                                                │
│    export OPENCLAW_NO_RESPAWN=1                                                            │
│                                                                                            │
├────────────────────────────────────────────────────────────────────────────────────────────╯</pre>
<p>这个startup 优化，不知道是不是针对gateway的启动也有效。不过在升级到最新版之后，感觉启动稍微顺畅了一点。似乎没那么卡了。</p>
<p>新版本貌似也同时修复了用量显示问题，上个版本，不管怎么查询用量都只显示今天的，新版貌似是没问题了：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151143-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1411" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151143-scaled.jpg" data-lightbox="gal[684]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-687" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151143-scaled.jpg" alt="" width="2560" height="1411" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-scaled.jpg?v=1774422722 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-300x165.jpg?v=1774422722 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-1024x564.jpg?v=1774422722 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-150x83.jpg?v=1774422722 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-768x423.jpg?v=1774422722 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-1536x847.jpg?v=1774422722 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-2048x1129.jpg?v=1774422722 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-665x367.jpg?v=1774422722 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151143-472x260.jpg?v=1774422722 472w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>服务器作为一个比较干净的环境，如果要实现一些其他的功能，就得能够进行文件快速交互，所以文件上传下载也就是一个必备的技能，推荐filebrower：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151340-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1426" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151340-scaled.jpg" data-lightbox="gal[684]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-688" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151340-scaled.jpg" alt="" width="2560" height="1426" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-scaled.jpg?v=1774422835 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-300x167.jpg?v=1774422835 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-1024x570.jpg?v=1774422835 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-150x84.jpg?v=1774422835 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-768x428.jpg?v=1774422835 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-1536x855.jpg?v=1774422835 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-2048x1140.jpg?v=1774422835 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-665x370.jpg?v=1774422835 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151340-467x260.jpg?v=1774422835 467w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>至此对我来说，一个简单的勉强能用的龙虾就实现了。可以尝试各种工作了：</p>
<p>1. 手搓elf可执行文件</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260324-145712-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1469" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260324-145712-scaled.jpg" data-lightbox="gal[684]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-676" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260324-145712-scaled.jpg" alt="" width="2560" height="1469" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-scaled.jpg?v=1774335496 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-300x172.jpg?v=1774335496 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-1024x587.jpg?v=1774335496 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-150x86.jpg?v=1774335496 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-768x441.jpg?v=1774335496 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-1536x881.jpg?v=1774335496 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-2048x1175.jpg?v=1774335496 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-665x382.jpg?v=1774335496 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260324-145712-453x260.jpg?v=1774335496 453w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>2.给我发布闺蜜圈wiki的文章：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151614.jpg" data-lbwps-width="1782" data-lbwps-height="1458" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151614.jpg" data-lightbox="gal[684]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-689" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151614.jpg" alt="" width="1782" height="1458" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151614.jpg?v=1774422990 1782w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151614-300x245.jpg?v=1774422990 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151614-1024x838.jpg?v=1774422990 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151614-150x123.jpg?v=1774422990 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151614-768x628.jpg?v=1774422990 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151614-1536x1257.jpg?v=1774422990 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151614-665x544.jpg?v=1774422990 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151614-318x260.jpg?v=1774422990 318w" sizes="auto, (max-width: 1782px) 100vw, 1782px" /></a></p>
<p>3.批量创建停机申请表：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151730.jpg" data-lbwps-width="2198" data-lbwps-height="1278" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151730.jpg" data-lightbox="gal[684]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-690" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151730.jpg" alt="" width="2198" height="1278" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730.jpg?v=1774423086 2198w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730-300x174.jpg?v=1774423086 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730-1024x595.jpg?v=1774423086 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730-150x87.jpg?v=1774423086 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730-768x447.jpg?v=1774423086 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730-1536x893.jpg?v=1774423086 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730-2048x1191.jpg?v=1774423086 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730-665x387.jpg?v=1774423086 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151730-447x260.jpg?v=1774423086 447w" sizes="auto, (max-width: 2198px) 100vw, 2198px" /></a></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151925-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1447" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151925-scaled.jpg" data-lightbox="gal[684]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-691" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260325-151925-scaled.jpg" alt="" width="2560" height="1447" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-scaled.jpg?v=1774423189 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-300x170.jpg?v=1774423189 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-1024x579.jpg?v=1774423189 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-150x85.jpg?v=1774423189 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-768x434.jpg?v=1774423189 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-1536x868.jpg?v=1774423189 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-2048x1158.jpg?v=1774423189 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-665x376.jpg?v=1774423189 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260325-151925-460x260.jpg?v=1774423189 460w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>skill这个东西，可以有，但是也不是必须的。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/03/684/feed/</wfw:commentRss>
			<slash:comments>50</slash:comments>
		
		
			</item>
		<item>
		<title>🦞龙虾初体验</title>
		<link>https://oba.by/2026/03/610/</link>
					<comments>https://oba.by/2026/03/610/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 08:04:50 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[open claw]]></category>
		<category><![CDATA[zero claw]]></category>
		<category><![CDATA[养虾]]></category>
		<category><![CDATA[龙虾]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=610</guid>

					<description><![CDATA[龙虾刚出来的时候，我无动于衷；龙虾爆火的时候，我依然无动于衷；龙虾开始被卸载的时候，我终于不再无动于衷了。 从 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1646" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-scaled.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-627" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-scaled.jpg" alt="" width="2560" height="1646" srcset="https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-scaled.jpg?v=1773907481 2560w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-300x193.jpg?v=1773907481 300w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-1024x658.jpg?v=1773907481 1024w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-150x96.jpg?v=1773907481 150w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-768x494.jpg?v=1773907481 768w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-1536x988.jpg?v=1773907481 1536w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-2048x1317.jpg?v=1773907481 2048w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-665x428.jpg?v=1773907481 665w, https://oba.by/wp-content/uploads/2026/03/微信图片_20260319160339_607_42-404x260.jpg?v=1773907481 404w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>龙虾刚出来的时候，我无动于衷；龙虾爆火的时候，我依然无动于衷；龙虾开始被卸载的时候，我终于不再无动于衷了。</p>
<p><span id="more-610"></span></p>
<p>从春节的时候，龙虾忽然就开始变得热度极高。几乎所有人都在讨论龙虾，以及养虾的话题。这儿东西最开始的时候，给我的感觉就是，如果本地没有足够多的资源，龙虾就发挥不出自己的作用；如果直接用自己的电脑去安装，又会出现龙虾权限过高的问题。</p>
<p>龙虾做得事情，可能在我的预期范围之外。单纯为龙虾创建一个沙盒环境，意义感觉也不是很大。如果一个问题需要解决两遍，那感觉和不解决似乎也没太多的区别。</p>
<p>尽管如此，龙虾的热度还是越来越高，一度出现各种上门安装的服务。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Cache_6eb8d89b71548277.jpg" data-lbwps-width="1072" data-lbwps-height="1920" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Cache_6eb8d89b71548277.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone wp-image-611" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Cache_6eb8d89b71548277.jpg" alt="" width="629" height="1127" srcset="https://oba.by/wp-content/uploads/2026/03/Cache_6eb8d89b71548277.jpg?v=1773904572 1072w, https://oba.by/wp-content/uploads/2026/03/Cache_6eb8d89b71548277-168x300.jpg?v=1773904572 168w, https://oba.by/wp-content/uploads/2026/03/Cache_6eb8d89b71548277-572x1024.jpg?v=1773904572 572w, https://oba.by/wp-content/uploads/2026/03/Cache_6eb8d89b71548277-84x150.jpg?v=1773904572 84w, https://oba.by/wp-content/uploads/2026/03/Cache_6eb8d89b71548277-768x1376.jpg?v=1773904572 768w, https://oba.by/wp-content/uploads/2026/03/Cache_6eb8d89b71548277-858x1536.jpg?v=1773904572 858w, https://oba.by/wp-content/uploads/2026/03/Cache_6eb8d89b71548277-665x1191.jpg?v=1773904572 665w, https://oba.by/wp-content/uploads/2026/03/Cache_6eb8d89b71548277-145x260.jpg?v=1773904572 145w" sizes="auto, (max-width: 629px) 100vw, 629px" /></a> <a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/D432B90692D8225449D29A6E17F4C40F.png" data-lbwps-width="630" data-lbwps-height="1130" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/D432B90692D8225449D29A6E17F4C40F.png" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-612" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/D432B90692D8225449D29A6E17F4C40F.png" alt="" width="630" height="1130" srcset="https://oba.by/wp-content/uploads/2026/03/D432B90692D8225449D29A6E17F4C40F.png?v=1773904578 630w, https://oba.by/wp-content/uploads/2026/03/D432B90692D8225449D29A6E17F4C40F-167x300.png?v=1773904578 167w, https://oba.by/wp-content/uploads/2026/03/D432B90692D8225449D29A6E17F4C40F-571x1024.png?v=1773904578 571w, https://oba.by/wp-content/uploads/2026/03/D432B90692D8225449D29A6E17F4C40F-84x150.png?v=1773904578 84w, https://oba.by/wp-content/uploads/2026/03/D432B90692D8225449D29A6E17F4C40F-145x260.png?v=1773904578 145w" sizes="auto, (max-width: 630px) 100vw, 630px" /></a></p>
<p>再后来出现线了，各种收费卸载的服务。果然是此一时，彼一时，三十年河东三十年河西。</p>
<p>然而，在这滚滚的卸载浪潮中，我逆流而上，反其道而行之，我安装龙虾了。</p>
<p>不得不多，openclaw基于node的服务还是蛮笨重的，安装的确有点麻烦，刚开始为了省事，直接百度云买了个所谓的9.9的open claw实例，然而订阅coding plan的时候发现根本抢不到。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-152751-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1402" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-152751-scaled.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-613" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-152751-scaled.jpg" alt="" width="2560" height="1402" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-scaled.jpg?v=1773905327 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-300x164.jpg?v=1773905327 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-1024x561.jpg?v=1773905327 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-150x82.jpg?v=1773905327 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-768x421.jpg?v=1773905327 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-1536x841.jpg?v=1773905327 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-2048x1122.jpg?v=1773905327 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-665x364.jpg?v=1773905327 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152751-475x260.jpg?v=1773905327 475w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>使用按量付费之后，简单尝试了以下，发现效果还是可以的，不过就是太费token了。千帆大模型感觉体验也还ok。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-152926-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1432" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-152926-scaled.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-614" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-152926-scaled.jpg" alt="" width="2560" height="1432" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-scaled.jpg?v=1773905523 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-300x168.jpg?v=1773905523 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-1024x573.jpg?v=1773905523 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-150x84.jpg?v=1773905523 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-768x429.jpg?v=1773905523 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-1536x859.jpg?v=1773905523 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-2048x1145.jpg?v=1773905523 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-665x372.jpg?v=1773905523 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-152926-465x260.jpg?v=1773905523 465w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>可以理解你的意图，也能正常的推进任务。然而，不能订阅，这个长期跑费用是个问题。</p>
<p>于是再次尝试别的方式，直接腾讯清凉弄了台99的服务器，干净安装openclaw，模型选择参考的<a href="https://dujun.io/28c43a95-478f-5e2a-8805-510244c99494.html" target="_blank" rel="noopener">杜郎</a>的文章里提到的<a href="https://build.nvidia.com/z-ai/glm5" target="_blank" rel="noopener">nvidia nim</a>。好处是免费，当然，速率还是有限制的。</p>
<p>昨天的时候，第一次玩这个东西没啥经验，还是用的kimi，后来尝试minimax，但是效果怎么说呢，不知道是配置问题还是啥问题，总是不尽如意。</p>
<p>再后来看到了zero claw，号称体积更小，占用资源更少。直接二进制安装，下载之后启动：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-153609-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1484" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-153609-scaled.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-616" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-153609-scaled.jpg" alt="" width="2560" height="1484" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-scaled.jpg?v=1773905788 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-300x174.jpg?v=1773905788 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-1024x594.jpg?v=1773905788 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-150x87.jpg?v=1773905788 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-768x445.jpg?v=1773905788 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-1536x891.jpg?v=1773905788 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-2048x1187.jpg?v=1773905788 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-665x386.jpg?v=1773905788 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-153609-448x260.jpg?v=1773905788 448w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>至于怎么在公网访问，直接使用nginx反代即可，参考： <a href="https://cnb.cool/oba.by/baby-claw" target="_blank" rel="noopener">https://cnb.cool/oba.by/baby-claw</a></p>
<p>这次直接用glm5，配置好之后，整体体验感觉有些差，就是非常智障的感jio。</p>
<div style="width: 665px;" class="wp-video"><video class="wp-video-shortcode" id="video-610-3" width="665" height="559" preload="metadata" controls="controls"><source type="video/mp4" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/2.mp4?_=3" /><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/2.mp4">https://zhongxiaojie.cn/wp-content/uploads/2026/03/2.mp4</a></video></div>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-134616.jpg" data-lbwps-width="1406" data-lbwps-height="1048" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-134616.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-619" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-134616.jpg" alt="" width="1406" height="1048" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134616.jpg?v=1773906544 1406w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134616-300x224.jpg?v=1773906544 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134616-1024x763.jpg?v=1773906544 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134616-150x112.jpg?v=1773906544 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134616-768x572.jpg?v=1773906544 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134616-665x496.jpg?v=1773906544 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134616-349x260.jpg?v=1773906544 349w" sizes="auto, (max-width: 1406px) 100vw, 1406px" /></a> <a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-134641.jpg" data-lbwps-width="1374" data-lbwps-height="970" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-134641.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-620" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-134641.jpg" alt="" width="1374" height="970" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134641.jpg?v=1773906546 1374w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134641-300x212.jpg?v=1773906546 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134641-1024x723.jpg?v=1773906546 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134641-150x106.jpg?v=1773906546 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134641-768x542.jpg?v=1773906546 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134641-665x469.jpg?v=1773906546 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-134641-368x260.jpg?v=1773906546 368w" sizes="auto, (max-width: 1374px) 100vw, 1374px" /></a></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154946.jpg" data-lbwps-width="1434" data-lbwps-height="1154" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154946.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-621" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154946.jpg" alt="" width="1434" height="1154" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154946.jpg?v=1773906600 1434w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154946-300x241.jpg?v=1773906600 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154946-1024x824.jpg?v=1773906600 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154946-150x121.jpg?v=1773906600 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154946-768x618.jpg?v=1773906600 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154946-665x535.jpg?v=1773906600 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154946-323x260.jpg?v=1773906600 323w" sizes="auto, (max-width: 1434px) 100vw, 1434px" /></a></p>
<p>假装执行，这种处理逻辑真是可以，如果我不知道文章分类都有啥，差点就信了。在这种状况下不得不再切回openclaw。鉴于昨天的配置问题，今天reset之后，尝试重新配置运行，依然用与zero claw同样的glm5，这次相对来说还是比较顺利的。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154756-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1436" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154756-scaled.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-622" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154756-scaled.jpg" alt="" width="2560" height="1436" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-scaled.jpg?v=1773906646 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-300x168.jpg?v=1773906646 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-1024x575.jpg?v=1773906646 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-150x84.jpg?v=1773906646 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-768x431.jpg?v=1773906646 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-1536x862.jpg?v=1773906646 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-2048x1149.jpg?v=1773906646 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-665x373.jpg?v=1773906646 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154756-463x260.jpg?v=1773906646 463w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a> <a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154824-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1468" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154824-scaled.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-623" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-154824-scaled.jpg" alt="" width="2560" height="1468" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-scaled.jpg?v=1773906652 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-300x172.jpg?v=1773906652 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-1024x587.jpg?v=1773906652 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-150x86.jpg?v=1773906652 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-768x440.jpg?v=1773906652 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-1536x881.jpg?v=1773906652 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-2048x1174.jpg?v=1773906652 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-665x381.jpg?v=1773906652 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-154824-453x260.jpg?v=1773906652 453w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>与之前zero claw的对比就会发现了，这次好歹是真的获取到相关的分类了，而不是假装执行。</p>
<p>所以，有的时候虽然都说自己很厉害，但是不对比永远都不知道谁更厉害。很多东西不是单纯说说就可以的，当然zero的优势在于部署方便，占用资源更低，但是作为一个agent，实际的效果并没有赶上open claw。</p>
<p>所以，现在各种龙虾层出不穷，如果不知道选择哪一只，建议还是选择原版，open claw，虽然安装费劲点。但是相对来说，没那么弱智（在同样的模型glm5下）。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-155734-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1583" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-155734-scaled.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-624" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-155734-scaled.jpg" alt="" width="2560" height="1583" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-scaled.jpg?v=1773907087 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-300x185.jpg?v=1773907087 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-1024x633.jpg?v=1773907087 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-150x93.jpg?v=1773907087 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-768x475.jpg?v=1773907087 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-1536x950.jpg?v=1773907087 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-2048x1266.jpg?v=1773907087 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-665x411.jpg?v=1773907087 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-155734-421x260.jpg?v=1773907087 421w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>上图为三小时token消耗量。</p>
<p>微信公众号文章，自动发布wp效果：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-160036-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1399" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-160036-scaled.jpg" data-lightbox="gal[610]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-625" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/Jietu20260319-160036-scaled.jpg" alt="" width="2560" height="1399" srcset="https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-scaled.jpg?v=1773907253 2560w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-300x164.jpg?v=1773907253 300w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-1024x559.jpg?v=1773907253 1024w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-150x82.jpg?v=1773907253 150w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-768x420.jpg?v=1773907253 768w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-1536x839.jpg?v=1773907253 1536w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-2048x1119.jpg?v=1773907253 2048w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-665x363.jpg?v=1773907253 665w, https://oba.by/wp-content/uploads/2026/03/Jietu20260319-160036-476x260.jpg?v=1773907253 476w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>相关资源：</p>
<p><a href="https://cnb.cool/oba.by/baby-claw" target="_blank" rel="noopener">https://cnb.cool/oba.by/baby-claw </a></p>
<p><a href="https://dujun.io/28c43a95-478f-5e2a-8805-510244c99494.html" target="_blank" rel="noopener">https://dujun.io/28c43a95-478f-5e2a-8805-510244c99494.html</a></p>
<p><a href="https://build.nvidia.com/z-ai/glm5" target="_blank" rel="noopener">https://build.nvidia.com/z-ai/glm5</a></p>
<p><a href="https://q.qq.com/qqbot/openclaw/index.html" target="_blank" rel="noopener">https://q.qq.com/qqbot/openclaw/index.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://oba.by/2026/03/610/feed/</wfw:commentRss>
			<slash:comments>77</slash:comments>
		
		<enclosure url="https://zhongxiaojie.cn/wp-content/uploads/2026/03/2.mp4" length="16887436" type="video/mp4" />

			</item>
	</channel>
</rss>
