|
1 |
| -# wxgzh-api - 获取微信公众号的最近文章 |
| 1 | +# wxgzh-api - 获取任意微信公众号的最近文章 |
2 | 2 |
|
3 |
| -本项目提供一种基于微信公众平台的方法获取微信公众号的最近文章 |
| 3 | +本项目提供一种基于微信公众平台的方法,获取任意微信公众号的最近文章。 |
4 | 4 |
|
5 | 5 | ## 开始使用
|
6 | 6 |
|
7 |
| -### 前置 |
| 7 | +### Step 1. 准备 |
8 | 8 |
|
9 |
| -你应当创建一个`微信公众平台订阅号` |
| 9 | +0. 创建一个`微信公众平台订阅号` |
| 10 | +1. 若使用`docker`和`docker-compose`部署, 则安装`docker`和`docker-compose` |
10 | 11 |
|
11 |
| -你应当安装`docker`和`docker-compose` |
| 12 | + 若手动部署,则安装`python3.10+`, `firefox`, `geckodriver`, 以及`requirements.txt`中的依赖 |
| 13 | +2. 将项目克隆至本地 |
| 14 | + ``` |
| 15 | + git clone https://github.com/BeautyYuYanli/wxgzh-api.git |
| 16 | + ``` |
| 17 | +3. 登录`微信公众平台`, 将`mp.weixin.qq.com`域名下的cookie以`json`格式保存至`wxgzh-api/cookies.json`. 你可以使用这个插件:[chrome](https://chrome.google.com/webstore/detail/%E3%82%AF%E3%83%83%E3%82%AD%E3%83%BCjson%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%87%BA%E5%8A%9B-for-puppet/nmckokihipjgplolmcmjakknndddifde) [firefox](https://addons.mozilla.org/en-US/firefox/addon/%E3%82%AF%E3%83%83%E3%82%AD%E3%83%BCjson%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%87%BA%E5%8A%9B-for-puppeteer/) |
12 | 18 |
|
13 |
| -### 配置 |
| 19 | +### Step 2. 部署 |
14 | 20 |
|
15 |
| -1. 将本项目克隆至本地 |
16 |
| -``` |
17 |
| -git clone https://github.com/BeautyYuYanli/wxgzh-api.git |
18 |
| -``` |
| 21 | +#### 方法一、 docker + docker-compose |
19 | 22 |
|
20 |
| -2. 登录`微信公众平台`, 将`mp.weixin.qq.com`域名下的cookie以`json`格式保存至`wxgzh-api/cookies.json`. 你可以使用这个插件:[chrome](https://chrome.google.com/webstore/detail/%E3%82%AF%E3%83%83%E3%82%AD%E3%83%BCjson%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%87%BA%E5%8A%9B-for-puppet/nmckokihipjgplolmcmjakknndddifde) [firefox](https://addons.mozilla.org/en-US/firefox/addon/%E3%82%AF%E3%83%83%E3%82%AD%E3%83%BCjson%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%87%BA%E5%8A%9B-for-puppeteer/) |
| 23 | +1. `docker-compose up -d` |
21 | 24 |
|
22 |
| -3. 其它配置在`docker-compose.yml`自行修改 |
| 25 | +#### 方法二、 手动部署 |
23 | 26 |
|
24 |
| -### 部署 |
| 27 | +1. `pip3 install waitress` |
| 28 | +2. `python3 -m waitress --port=11459 server:app` |
25 | 29 |
|
26 |
| -完成配置后在`wxgzh-api`目录下执行 |
27 |
| -``` |
28 |
| -docker-compose up -d |
29 |
| -``` |
30 |
| -以启动服务 |
| 30 | +### Step 3. 使用 |
31 | 31 |
|
32 |
| -### 使用 |
| 32 | +已部署的服务默认在 `localhost:11459` 监听。 |
33 | 33 |
|
34 |
| -服务默认在`localhost:11459`监听. 你可以发送一个`post`请求, 并携带`utf-8`编码的参数`公众号1$公众号2$...$公众号n`, 如: |
| 34 | +`/json_feed`: `GET`, 多个参数 `target`, 返回 [RSS JSON Feed](https://www.jsonfeed.org/2020/08/07/json-feed-version.html) (`application/feed+json`)格式的数据: |
35 | 35 | ```
|
36 |
| -requests.post("http://127.0.0.1:11459", "大连理工大学$大连理工大学学生会".encode('utf-8')).text |
| 36 | +http://127.0.0.1:11459/json_feeds?target=声动活泼&target=汪小喵爱大工 |
37 | 37 | ```
|
38 |
| -如果服务正常运行, 将返回`json`格式的字符串: |
39 | 38 | ```json
|
40 | 39 | {
|
41 |
| - "大连理工大学":[ |
42 |
| - {"date": "2021-01-16", "author": "大连理工大学", "title": "文章1", "link": "http://mp.weixin.qq.com/s?..."}, |
43 |
| - {"date": "2021-01-15", "author": "大连理工大学", "title": "文章2", "link": "http://mp.weixin.qq.com/s?..."}, |
44 |
| - ], |
45 |
| - "大连理工大学学生会":[ |
46 |
| - {"date": "2021-01-15", "author": "大连理工大学学生会", "title": "文章3", "link": "http://mp.weixin.qq.com/s?..."}, |
47 |
| - {"date": "2021-01-14", "author": "大连理工大学学生会", "title": "文章4", "link": "http://mp.weixin.qq.com/s?..."}, |
48 |
| - ] |
| 40 | + "title": "微信公众号", |
| 41 | + "version": "https://jsonfeed.org/version/1.1", |
| 42 | + "description": "微信公众号文章更新推送", |
| 43 | + "home_page_url": "https://github.com/BeautyyuYanli/wxgzh-api", |
| 44 | + "items": [ |
| 45 | + { |
| 46 | + "authors": [ |
| 47 | + { |
| 48 | + "name": "声动活泼" |
| 49 | + } |
| 50 | + ], |
| 51 | + "date_published": "2023-03-05T00:00:00+08:00", |
| 52 | + "title": "一年了!声动胡同有了这些新变化,邀请你来加入", |
| 53 | + "url": "http://mp.weixin.qq.com/s?__biz=MzIwMDczNTE3OQ==&mid=2247496071&idx=1&sn=7024a904a4cf6f448ebbcc2888cf282c&chksm=96fa1123a18d983599aba221d7d1a8cbd0c80d2773f9cdb1b13c2ead9cadcfe905f8ad94fe4f#rd" |
| 54 | + }, |
| 55 | + { |
| 56 | + "authors": [ |
| 57 | + { |
| 58 | + "name": "汪小喵爱大工" |
| 59 | + } |
| 60 | + ], |
| 61 | + "date_published": "2023-03-05T00:00:00+08:00", |
| 62 | + "title": "公告&记录 | 查询汪小喵精神状态", |
| 63 | + "url": "http://mp.weixin.qq.com/s?__biz=MzI4NzYwMTYxMQ==&mid=2247487382&idx=1&sn=7774bfc2e7fed6473982b191fac1c225&chksm=ebca6932dcbde024ed77f52f855fe61beb6fcfb49f3700482a52d7c6e0185ddab043968ab052#rd" |
| 64 | + } |
| 65 | + ] |
49 | 66 | }
|
50 |
| -``` |
51 |
| -否则返回错误信息 |
52 | 67 |
|
53 |
| -### Warning |
| 68 | +``` |
54 | 69 |
|
55 |
| -**为了避免被微信后台风控, 查询过程将长达`1min`以上** |
| 70 | +也可以在不部署的情形下直接拉取数据: |
| 71 | +``` |
| 72 | +python standalone.py -h |
| 73 | +``` |
| 74 | +``` |
| 75 | +usage: standalone.py [-h] [--cookiefile COOKIEFILE] [--target TARGET [TARGET ...]] |
56 | 76 |
|
57 |
| -**出于同样的理由, 请谨慎地控制调用该API的频率** |
| 77 | +options: |
| 78 | + -h, --help show this help message and exit |
| 79 | + --cookiefile COOKIEFILE |
| 80 | + --target TARGET [TARGET ...] |
58 | 81 |
|
59 |
| -### Demo |
| 82 | +``` |
60 | 83 |
|
61 |
| -本项目**可能触发微信后台的风险管控**, 故不提供demo. 你可以查看姊妹项目[wxgzh2tg](https://github.com/BeautyYuYanli/wxgzh2tg.git)的demo: |
| 84 | +## 开发 |
62 | 85 |
|
63 |
| -- Telegram Channel: [DUT_News](https://t.me/s/DUT_News) |
| 86 | +本项目还可以直接作为 Python 模块使用(TODO) |
64 | 87 |
|
65 |
| -- 与[RSSHub](https://github.com/DIYgod/RSSHub)协作, 将文章进一步转为[rss订阅链接](https://rsshub.app/telegram/channel/DUT_News) |
| 88 | +## 其他 |
66 | 89 |
|
67 |
| -## Todo |
| 90 | +- 频繁请求可能导致账号被风控。 |
| 91 | +- Cookies 有效期为 3 天,过期后需要重新获取。 |
68 | 92 |
|
69 |
| -- [ ] 增加查询失败处理 |
| 93 | +本项目还可能对账号造成其它未知的影响, 请自行承担风险。 |
0 commit comments