返回

粉丝转移大法:从个人博客到公众号

闲谈

来来来,小板凳搬好,瓜子花生を用意,给大家分享一个小妙招——如何把个人博客的粉丝转移到公众号上。话不多说,开整!

整个过程耗时一周,踩了无数次坑,中间差点想放弃,还好皇天不负有心人,最终还是搞定了。既然都整明白了,索性写个技术贴,跟大家分享分享。

首先,我们得理清思路:从博客转移粉丝,其实就是把博客内容搬运到公众号上,让粉丝关注公众号。而内容搬运又分为两步:

  1. 导出博客文章

导出格式可以选择 XML,这是 WordPress 博客的通用导出格式。

  1. 导入公众号文章

登陆公众号后台,找到「素材管理」-「素材库」-「图文素材」,点击「导入」,选择刚才导出的 XML 文件,就能批量导入文章了。

看起来简单吧?但是,现实往往没有想象得那么美好。导入后发现,文章的配图全都不见了!仔细一看,原来是图片链接出了问题。

博客文章里的图片都是相对路径,比如「images/1.jpg」,直接导入公众号后,图片链接就变成了「https://你的博客地址/images/1.jpg」。而公众号文章里,图片链接必须是绝对路径,比如「http://mmbiz.qpic.cn/mmbiz_jpg/你的公众号 ID/你的图片名.jpg」。

所以,我们需要把图片链接全部替换成绝对路径。手动改肯定不现实,写个小脚本吧!

import re
import requests

def replace_image_url(content):
    # 正则匹配图片链接
    pattern = re.compile(r'src="([^"]+)"')
    matches = pattern.findall(content)

    # 替换为绝对路径
    for match in matches:
        # 获取图片地址
        image_url = match.replace('src="', '').replace('"', '')
        # 请求图片获取绝对路径
        image_request = requests.get(image_url)
        image_url = image_request.url
        content = content.replace(match, 'src="{}"'.format(image_url))

    return content

# 读取文章内容
with open('article.xml', 'r') as f:
    content = f.read()

# 替换图片链接
content = replace_image_url(content)

# 导入公众号
# ...(代码略)

有了这个脚本,图片链接的替换问题就解决了。接着,又遇到了一个新的问题:文章中的代码块无法正常显示。

原来,公众号文章里的代码块需要用 或者 ```` 标记,而博客文章里的代码块是用 <pre></pre> 标记的。于是,我又写了一个脚本来把 <pre></pre> 替换成

就这样,把遇到的坑一个一个填上,终于把博客文章全部转移到了公众号上。期间确实花费了不少精力,但看到粉丝数蹭蹭蹭往上涨,一切努力都值了!

希望我的分享能给各位一点启发,如果你也遇到类似的问题,不妨参考一下我的方法。当然,具体情况可能有所不同,需要根据实际情况灵活调整。