项目地址:https://github.com/zhegexiaohuozi/seimi-render(Apache 2.0 开源)

从一个老问题说起

做爬虫、做数据采集、做内容聚合的同学,大概都绕不开一个场景:拿到一个 URL,我要的不是它 curl 出来的那段 HTML,而是「人在浏览器里看到的那一页」——JS 跑完之后的内容、登录态后面才能看到的页面、搜索结果里去掉广告的结构化结果。

这条路传统上有几个老掉牙的方案:

  • requests + BeautifulSoup:对 SPA 和动态页面直接歇菜,拿到的是空壳。
  • Selenium / Playwright:能跑,但每个任务要拉起一个完整浏览器进程,重、慢、不稳定,并发起来资源开销惊人。
  • 直接复用日常浏览器:有人图省事,挂个插件或用 puppeteer 连到自己平时用的 Chrome 上跑自动化。但这玩意儿是双向干扰的——自动化跑起来窗口一直在跳、标签页乱切,严重打扰你正常上网;反过来,你随手点个标签、关个页面、甚至切去别的网站,也会干扰甚至直接搞崩正在跑的采集流程。人和机器抢同一个浏览器,谁都别想舒服。
  • 商业渲染 API:能用,但贵、有限额、cookie 登录态完全没法自己掌控。
  • 搜索 API:贵,很贵。

而 2026 年大家又多了一个新需求:AI Agent 要读网页怎么办? Claude Code、Cursor、ZCode 这些 coding agent,本身没有「真实浏览器」这个能力,遇到「帮我看一下这个链接讲了什么」「帮我搜一下这个关键词」就卡住了——它们要么没有联网工具,要么只能用简陋的 fetch,拿不到 JS 渲染后的真实内容。

seimi-render 就是冲着这两个老痛点 + 一个新需求来的。

阅读剩余部分

1 理论基础

声明:本文方法论全部基于论文 "Always Learning, Always Mixing: Efficient and Simple Data Mixing All The Time" (OP-Mix, Hu et al., 2025, https://arxiv.org/abs/2605.15220) 的结论与实验结果提炼而成,旨在将论文的学术贡献转化为可直接指导工程实践的系统性方法论。

1.1 问题形式化

设模型已具备的能力域为 $\{D_1, \dots, D_m\}$,当前混合比例为 $p_{t-1}$,新引入的能力域为 $D_{m+1}, \dots, D_{m+K}$。目标是找到混合比例 $\alpha^*$ 使得:

$$ \alpha^* = \arg\min_{\alpha \in \triangle^K} \frac{1}{N}\sum_{j=1}^{N} w_j \cdot \hat{g}_j(\alpha) + \lambda \cdot D_{\text{KL}}(E(\alpha) \| \mu) $$

阅读剩余部分

不知不觉又到年底了,为了让这个年有点仪式感,我觉着少了一瓶茅台,又不想当冤大头,只能去某东去抢,去年的自动化脚本已经完全失效了。只能从头看接口重写一个了。以下内容是完成此目标必须解决的三个主要问题:

第一个问题:sk参数

最直接的想法就是把能提取参数先临时提取出来,直接模拟最后submitOrder就完事了,但是,

阅读剩余部分

简介

JsoupXpath 是一款纯Java开发的使用xpath解析提取html数据的解析器,针对html解析完全重新实现了W3C XPATH 1.0标准语法,xpath的Lexer和Parser基于Antlr4构建,html的DOM树生成采用Jsoup,故命名为JsoupXpath.
为了在java里也享受xpath的强大与方便但又苦于找不到一款足够好用的xpath解析器,故开发了JsoupXpath。JsoupXpath的实现逻辑清晰,扩展方便,
支持完备的W3C XPATH 1.0标准语法,W3C规范:http://www.w3.org/TR/1999/REC-xpath-19991116 ,JsoupXpath语法描述文件Xpath.g4

更新

阅读剩余部分

最近服务器要过期了,操作系统版本也太低了,包管理官方都不维护了,是时候重新折腾下了。便于日后同样的迁移场景,博客系统做了如下改动:

  • 基于php5.6+fpm构建了一个自定义docker镜像,并可以完美跑现有的老blog的源码,以后迁移就方便了。(PHP版本只能用5.X的,新版PHP的MySQL连接方式改变了,老代码没法跑)
  • 站点顺便全部https化,顺应时代
  • typecho 从0.9升级到1.2(基于7.4-fpm-alpine3.14官方镜像构建自定义镜像),升级过程略曲折