/wechat2tg

将微信公众号的推送转发至tg channel 一种基于微信公众平台的方案

Primary LanguagePython

wechat2tg - 将微信公众号的推送转发至telegram channel

本项目提供一种基于微信公众平台的方法将微信公众号的推送转发至tg channel

开始使用

前置

你应当创建一个tg bot, 并获取bot token以及bot chatID

你应当创建一个微信公众平台订阅号

安装依赖

将本项目克隆至本地

使用pip安装requirement.txt中的所有依赖

pip install --user -r requirement.txt

其中的selenium是一个自动控制的web引擎, 如果你使用Linux/Windows机器 在本机上安装Chrome/Chromium浏览器即可; 如果你使用其它系统的机器, 请到selenium的官方网站上查询如何在python中使用该引擎

selenium还要求使用图形界面, 请确保你的机器安装了图形界面或可以连接到其它X server

使用selenium是为了更高程度地模拟人类行为, 以规避不必要的反爬虫审查

配置

  1. 在目录下创建文件config.py, 并仿照config.py.temp在该文件中写入配置信息, 包括bot token, bot chatID, 订阅公众号列表, 用于连接tg的代理服务器

  2. 在目录下创建文件database.pwp, 不写入任何内容

  3. 登录微信公众平台, 将mp.weixin.qq.com域名下的cookie以json格式保存至cookies.json. 你可以使用这个插件

完成配置后目录应该至少包含:

config.py
cookies.json
database.pwp
forward.py
main.py
update.py
chromedriver.exe

部署

运行python main.py以获取订阅公众号的最新文章. 你可以为此创建一个定时任务

请谨慎地配置定时任务, 以免触发微信后台的风控. 以下是一个仅供参考的定时任务配置

➜ crontab -l
30 6-23/1 * * * sh /home/xxxx/wc2tg.sh

➜ cat wc2tg.sh 
cd /home/xxxx/wechat2tg/
export DISPLAY=:0
timeout 10m python main.py -k

Demo

Todo

  • 项目未使用数据库, 长期使用可能导致database.pwp文件过大. 将database.pwp替换为数据库
  • 使用docker包装update.py及其相关内容至wechat-gzh-api
  • 使用合适的方法替换标题作为文章的唯一标识