之前收到很多朋友的要求,说是需要一个公众号的自动发布工具。
现在,它来了。
前提条件
前提条件当然是先下载 blog-auto-publishing-tools这个博客自动发布工具,地址如下:https://github.com/ddean2009/blog-auto-publishing-tools
公众号的实现
因为公众号每隔一段时间就会登录失效,所以在使用自动发布公众号之前,一定要确保你的公众号是登录状态。
否则没办法自动发布公众号消息。
登录到首页
如果你已经登录过公众号,那么可以直接访问https://mp.weixin.qq.com/, 这样会直接跳转到公众号的后台发布界面。
点击图文消息
到了首页之后,我们就可以点击图文消息这个按钮,开始我们的创作了。
公众号的图文消息实现的比较复杂。我们只能通过xpath来定位到这个元素。
# 点击图文消息
pic_and_article_button = driver.find_element(By.XPATH, '//div[@class="new-creation__menu-item"]//div[@class="new-creation__menu-title" and contains(text(), "图文消息")]')
pic_and_article_button.click()
time.sleep(1)
点击之后,就会跳转到公众号创作页面。
所以,我们需要切换一下tab:
# 切换到新的tab
driver.switch_to.window(driver.window_handles[-1])
time.sleep(1)
输入标题
公众号的标题是带有title id的,所以我们可以直接通过id来获取。
# 文章标题
title = driver.find_element(By.ID, 'title')
title.clear()
if 'title' in front_matter['title'] and front_matter['title']:
title.send_keys(front_matter['title'])
else:
title.send_keys(common_config['title'])
time.sleep(2) # 等待3秒
输入作者
公众号的作者也是带有author id的。
这里有两种方法来配置作者ID,第一种,也是推荐的一种就是把作者,title,图片等信息写到markdown文件的YAML Front Matter中,如下所示:
第二种就是在mpweixin自己的配置文件中设置author这个字段。
两种都可以,但是我个人推荐第一种。
实现代码如下:
# 文章作者
author = driver.find_element(By.ID, 'author')
if 'authors' in front_matter and front_matter['authors']:
author.send_keys(front_matter['authors'])
else:
author.send_keys(mpweixin_config['author'])
time.sleep(1)