自动化我的大脑:用Python一键将Markdown文章分发到知乎/微信/掘金

这玩意儿要是成了,我他妈就再也不用当人肉复制粘贴机了。写一篇技术文章,给SaaS引流,这思路没错。但写完之后的流程,简直是工业革命前的作坊:打开知乎编辑器,粘贴,调格式,传图;打开微信后台,再粘贴,再调格式,再传图;掘金再来一遍。一篇文章,两小时写完,分发排版能干掉我一下午。这效率,别说做营销飞轮了,轮子还没转起来,我先累死在起点。

必须自动化。核心就三块:内容解析、平台适配、媒体上传。内容解析最简单,用Python的markdown库,把.md文件转成HTML DOM树,这是通用中间层。真正的魔鬼在平台适配。每个平台都是独立王国,有自己的一套“方言”。知乎的编辑器认一部分HTML标签,但style属性得小心;微信公众号最变态,它那个富文本编辑器是自研的,只认它自己生成的那套带data-*属性的HTML,而且图片必须走它的素材库;掘金相对友好点,支持Markdown直接粘贴,但图片也有防盗链。

最难啃的骨头是微信公众号的图文素材上传接口。这接口根本没公开文档,只能抓包。用Chrome开发者工具,开无痕模式,登录公众号后台,手动上传一张图,看Network里那一串XHR请求。找到那个uploadmaterial的请求,头都大了。请求头里带着Cookie、Token,表单数据是multipart/form-data,里面还嵌了一堆莫名其妙的字段,像`upload_type`、`output_type`、`media`。最骚的是,它返回的还不是直接的图片URL,是一个media_id,你要在发布文章时,用这个id去替换图片链接。这意味着我的脚本得分两步:第一步,把文章里所有本地图片,批量上传到微信素材库,拿到一堆media_id;第二步,在生成给微信的HTML时,把img的src替换成`{{media_id}}`这种占位符,最后调用发布接口时,再把占位符映射过去。

我用selenium模拟登录拿到Cookie,然后用requests库手动构建那个multipart请求。光是调试这个请求格式,就花了四个小时。不是字段顺序不对,就是boundary字符串有问题,要么就是Token过期。中间无数次返回“系统错误”或者“无效的媒体文件”。那一刻真想顺着网线爬过去把腾讯后台砸了。

但当你看到第一个请求成功返回,拿到那串media_id的时候,那种感觉,比当年第一次写出“Hello World”还他妈刺激。这意味着,微信这个最封闭的堡垒,被我撬开了一条缝。

图片问题用图床自动化解决。写了个钩子,在解析Markdown时,检测到本地图片路径,就自动调用上传函数,传到我的阿里云OSS,并返回CDN链接。这样,给知乎和掘金的版本,直接用CDN链接,完美绕过防盗链。给微信的版本,则走刚才那套“上传素材库-替换media_id”的流程。

最后封装成一个命令行工具:`python syndicate.py my_article.md –platforms zhihu,wechat,juejin`。运行,泡杯咖啡,回来一看,三个平台的后台草稿箱里,文章已经安安稳稳躺在那儿了,格式工整,图片一张不差。

这个不到500行的脚本,今天起就是我的“自动化市场部”。它把我从重复劳动中彻底解放出来,让我能把所有时间聚焦在创作和产品本身。流量焦虑依然在,但至少,我让机器去替我完成那些最枯燥、最耗时的部分。这才是技术宅的浪漫:用代码,给自己造一个杠杆。

© 版权声明
THE END
喜欢就支持一下吧
点赞87 分享