核心内容摘要
雷火剑动漫OVA:沉浸式视觉盛宴,探索未知的激燃世界
昨晚想把整理好的人形机器人行业资讯发到 CSDN结果踩了一晚上的坑。
本来以为很简单——GitHub 上有个叫 Articli 的工具号称一行命令就能发文章到 CSDN、掘金、思否。
装上配好 Cookie运行Error: request failed 415: Unsupported Media Type415我 Cookie 是刚从浏览器复制的啊。
翻了一下 Articli 的 commit 记录最后更新是 2023 年 3 月。
CSDN 的 API 早就改了这工具已经是个死项目了。
行吧自己动手。
思路既然 API 不行那就模拟人CSDN 没有公开 API第三方工具又挂了但浏览器里手动发文章肯定是能用的。
那就让程序来操作浏览器。
我用的是 OpenClaw 的浏览器控制功能底层是 Chrome DevTools Protocol。
简单说就是启动一个 Chrome然后用代码控制它点击、输入、截图。
第一个坑服务器上没有显示器我的程序跑在云服务器上没有图形界面。
直接启动 Chrome 会报错。
解决方案headless 模式 no-sandbox。
第二个坑登录要图形验证码本来想用手机验证码登录结果 CSDN 弹了个点击图片中的比特币图标的验证码。
这玩意儿自动化太难搞了换个思路——直接注入 Cookie。
用户在浏览器里登录 CSDNF12 复制 Cookie在 headless Chrome 里注入刷新页面登录状态有了。
第三个坑编辑器是个黑盒CSDN 的 Markdown 编辑器不是普通的 textarea是个自定义组件。
翻了一下 DOM 结构找到了 .editor__inner 这个元素关键是要手动触发 input 事件不然编辑器不知道内容变了。
最终流程启动 headless Chrome打开 CSDN注入 Cookie跳转到 editor.csdn.net/md填标题注入内容点发布确认设置再点发布看到绿色勾号搞定整个流程跑通之后发一篇文章大概 10 秒钟。
一些感想折腾了一晚上其实核心代码就那么几行。
大部分时间都花在等 GitHub 下载、试错各种选择器、研究 CSDN 的 DOM 结构。
但这个过程挺有意思的。
以前觉得浏览器自动化是爬虫才用的东西现在发现它其实是个万能工具——只要人能在浏览器里做的事程序都能做。
下次再有什么网站没有 API我第一反应就是上 headless Chrome。
代码和完整的踩坑记录我整理成了一个可复用的模块有需要的可以留言。
对了这篇文章就是用这套流程发的。