wechat-article-aggregator
npx skills add https://github.com/wwwzhouhui/skills_collection --skill wechat-article-aggregator
Agent 安装分布
Skill 文档
å¾®ä¿¡å ¬ä¼å·æç« èåå¨
éè¿ mptext.top API æ¹éè·åæå®å ¬ä¼å·åä¸»çææ°æç« ï¼ä¸è½½å¹¶è§£æä¸º Markdown/HTML/çº¯ææ¬æ ¼å¼è¾åºã
å¿«éå¼å§
è·ååä¸ªå ¬ä¼å·ææ° 2 ç¯æç« ï¼
python scripts/fetch_articles.py --api-key YOUR_KEY --fakeids "MzkzNDQxOTU2MQ=="
è·åå¤ä¸ªå ¬ä¼å·æç« ï¼éå·åé fakeidï¼ï¼
python scripts/fetch_articles.py --api-key YOUR_KEY --fakeids "MzkzNDQxOTU2MQ==,MjM5NDI4MTY3NA==" --limit 3
æå ¬ä¼å·åç§°è·åï¼
python scripts/fetch_articles.py --api-key YOUR_KEY --fakeids "èµåç¦
å¿,饼干å¥å¥AGI"
è·åææé¢ç½®å ¬ä¼å·çæç« ï¼
python scripts/fetch_articles.py --api-key YOUR_KEY --fakeids all --limit 2
ä¾èµå®è£
pip install requests beautifulsoup4 html2text
æä½ä¾èµ: ä»
requestsä¸ºå¿ é¡»ä¾èµãbeautifulsoup4åhtml2textç¨äºå¢å¼º Markdown è½¬æ¢ææï¼æªå®è£ æ¶ä¼ä½¿ç¨å ç½® HTML è§£æå¨ã
ç¨æ·åæ°è¯´æ
| åæ° | ç±»å | å¿ å¡« | é»è®¤å¼ | 说æ |
|---|---|---|---|---|
--api-key / -k |
string | æ¯ | – | mptext.top ç API Key |
--fakeids / -f |
string | æ¯ | – | å
¬ä¼å· fakeid å表ï¼éå·åéï¼ãå
¬ä¼å·åç§°ãæ all |
--limit / -l |
int | å¦ | 2 | æ¯ä¸ªå ¬ä¼å·è·åçæç« æ°é |
--output-dir / -o |
string | å¦ | ./output |
è¾åºç®å½ |
--format / -F |
string | å¦ | markdown |
è¾åºæ ¼å¼ï¼markdown / html / text / json |
--accounts-file / -a |
string | å¦ | èªå¨æ¥æ¾ | èªå®ä¹å ¬ä¼å·è´¦å·å表 JSON æä»¶è·¯å¾ |
--interval / -i |
float | å¦ | 1.0 | 请æ±é´éç§æ° |
--list-accounts |
flag | å¦ | – | ååºææé¢ç½®å ¬ä¼å·ä¿¡æ¯ |
API Key è·åæ¹å¼
API Key æ¥æºäº mptext.top å¹³å°ï¼ç¨äºè®¤è¯æç« è·å请æ±ãå¨è¯·æ±å¤´ä¸ä»¥ X-Auth-Key ä¼ éã
fakeid 说æ
fakeid æ¯å¾®ä¿¡å
¬ä¼å·çå¯ä¸æ è¯ï¼Base64 ç¼ç ç biz åæ°ï¼ï¼å¯éè¿ä»¥ä¸æ¹å¼è·åï¼
- å¨å¾®ä¿¡å ¬ä¼å·å¹³å°åå°æ¥ç
- ä»å
¬ä¼å·æç« URL ä¸ç
__bizåæ°æå - ä½¿ç¨æ¬ skill é¢ç½®çè´¦å·å表
åè½è¯´æ
1. è·åæç« å表
è°ç¨ mptext.top API è·åæå®å ¬ä¼å·çææ°æç« å表ï¼
python scripts/fetch_articles.py --api-key YOUR_KEY --fakeids "MzkzNDQxOTU2MQ==" --limit 5
2. ä¸è½½å¹¶è§£ææç« å 容
è·åæç« HTML åèªå¨æå #js_content æ£æåºåï¼è½¬æ¢ä¸º Markdown æ ¼å¼ï¼
python scripts/fetch_articles.py --api-key YOUR_KEY --fakeids "èµåç¦
å¿" --format markdown
3. æ¹éè·åå¤ä¸ªå ¬ä¼å·
åæ¶è·åå¤ä¸ªå ¬ä¼å·çææ°æç« ï¼
python scripts/fetch_articles.py --api-key YOUR_KEY --fakeids "èµåç¦
å¿,饼干å¥å¥AGI,èé弿º" --limit 3
4. è·åææé¢ç½®å ¬ä¼å·
ä½¿ç¨ all å
³é®åè·åææé¢ç½®å
¬ä¼å·çæç« ï¼
python scripts/fetch_articles.py --api-key YOUR_KEY --fakeids all
5. æ¥çé¢ç½®å ¬ä¼å·å表
python scripts/fetch_articles.py --api-key dummy --fakeids dummy --list-accounts
6. ä½ä¸º Python åºè°ç¨
import sys
sys.path.insert(0, 'scripts')
from fetch_articles import get_article_list, download_article_html, extract_markdown_from_html, load_accounts, resolve_fakeids, fetch_all
api_key = "YOUR_API_KEY"
# è·åå个å
¬ä¼å·æç« å表
articles = get_article_list(api_key, "MzkzNDQxOTU2MQ==", limit=2)
for art in articles:
print(art['title'], art['url'])
# ä¸è½½å¹¶è§£ææç« å
容
html = download_article_html(api_key, articles[0]['url'])
markdown = extract_markdown_from_html(html, title=articles[0]['title'])
print(markdown[:500])
# æ¹éè·åå¤ä¸ªå
¬ä¼å·
accounts = load_accounts()
fakeids = resolve_fakeids("èµåç¦
å¿,饼干å¥å¥AGI", accounts)
summary = fetch_all(api_key, fakeids, limit=2, output_dir="./output")
print(f"æå: {summary['success']}, 失败: {summary['fail']}")
è¾åºç»æ
output/
âââ èµåç¦
å¿/
â âââ æç« æ é¢1.md
â âââ æç« æ é¢2.md
âââ 饼干å¥å¥AGI/
â âââ æç« æ é¢1.md
â âââ æç« æ é¢2.md
âââ èé弿º/
â âââ ...
âââ summary.json # æææç« çå
æ°æ®æ±æ»
summary.json æ ¼å¼
{
"fetch_time": "2026-02-23T17:30:00",
"total_accounts": 3,
"total_articles": 6,
"success": 5,
"fail": 1,
"accounts": [
{
"fakeid": "MzkzNDQxOTU2MQ==",
"name": "èµåç¦
å¿",
"articles": [
{
"title": "æç« æ é¢",
"url": "https://mp.weixin.qq.com/s/...",
"create_time": "1708689600",
"saved_path": "output/èµåç¦
å¿/æç« æ é¢.md",
"status": "success"
}
]
}
]
}
API æ¥å£è¯´æ
æç« å表æ¥å£
GET https://down.mptext.top/api/public/v1/article?fakeid={URL_ENCODED_FAKEID}&limit={N}
| åæ° | 说æ |
|---|---|
fakeid |
å
¬ä¼å·ç fakeidï¼é URL ç¼ç ï¼== â %3D%3Dï¼ |
limit |
è¿åæç« æ°é |
请æ±å¤´ï¼
X-Auth-Key: {YOUR_API_KEY}
ååºç¤ºä¾ï¼
[
{
"title": "æç« æ é¢",
"url": "https://mp.weixin.qq.com/s/xxxxx",
"create_time": 1708689600
}
]
æç« ä¸è½½æ¥å£
GET https://down.mptext.top/api/public/v1/download?url={URL_ENCODED_ARTICLE_URL}&type=html
| åæ° | 说æ |
|---|---|
url |
微信æç« URLï¼é URL ç¼ç |
type |
åºå®ä¸º htmlï¼API è¿å HTML æ ¼å¼ï¼ |
请æ±å¤´ï¼
X-Auth-Key: {YOUR_API_KEY}
ååºï¼ 宿´ç微信æç« HTML 页é¢ã
HTML æ£æè§£æè§å
ä»ä¸è½½ç HTML 䏿忣æå 容ï¼
- å®ä½
id="js_content"ç div å ç´ - ç§»é¤
scriptãstyleãnoscriptæ ç¾å 容 - æåææ¬å 容ï¼ä¿çæ®µè½æ¢è¡
- 使ç¨
html2text转æ¢ä¸º Markdownï¼å¦å·²å®è£ ï¼
é¢ç½®å ¬ä¼å·å表
| åºå· | å ¬ä¼å·åç§° | åç±» | FakeID |
|---|---|---|---|
| 1 | 饼干å¥å¥AGI | AIç¼ç¨ | MjM5NDI4MTY3NA== |
| 2 | èµåç¦ å¿ | AIåæ²¿ | MzkzNDQxOTU2MQ== |
| 3 | 坿çå°äº | AIææ¯ | MzkzMTcyMTgxNg== |
| 4 | å®ççå·¥ç¨ææ¯å享 | ææ¯ç¿»è¯ | Mzk1NzgxMjQ0OA== |
| 5 | èä½ | AI宿 | Mzg3MTk3NzYzNw== |
| 6 | èé弿º | Claude Code | MzI0NzU2MDgyNA== |
| 7 | ç©è½¬AIå·¥å · | AIå·¥å · | MzU4NTE1Mjg4MA== |
| 8 | è¢é¼ å¸AI客æ | AI宿 | MzkwMzE4NjU5NA== |
å¯éè¿ --accounts-file åæ°æå®èªå®ä¹çå
¬ä¼å·å表 JSON æä»¶æ¥æ©å±ã
注æäºé¡¹
- API Key å®å ¨: 请å¿å° API Key 硬ç¼ç å°ä»£ç ä¸ï¼å»ºè®®éè¿ç¯å¢åéæå½ä»¤è¡åæ°ä¼ å ¥ã
- 请æ±é¢ç: é»è®¤é´é 1 ç§ï¼å¦é 429 é误请å¢å¤§
--intervalå¼ã - HTML è§£æ: ä¸è½½æ¥å£è¿å宿´ HTML 页é¢ï¼èæ¬èªå¨ä»
#js_contentåºåæåæ£æã - ä¾èµé级: æªå®è£
beautifulsoup4åhtml2textæ¶ï¼ä½¿ç¨å ç½® HTMLParser æåçº¯ææ¬ã - æä»¶å½å: è¾åºæä»¶ä»¥æç« æ é¢å½åï¼èªå¨å»é¤ç¹æ®å符ï¼é¿åº¦æªæä¸º 80 å符ã
触åå ³é®è¯
- “è·åå ¬ä¼å·æç« “
- “æå微信æç« “
- “å ¬ä¼å·æç« èå”
- “æ¹éè·åå ¬ä¼å·”
- “ä¸è½½å ¬ä¼å·æç« “
- “微信æç« éé”
- “è·åææ°å ¬ä¼å·æç« “
æ´æ°æ¥å¿
v1.0.0 (2026-02-23)
- åå§çæ¬
- æ¯æéè¿ mptext.top API è·åå ¬ä¼å·æç« å表
- æ¯æä¸è½½æç« HTML å¹¶è§£æä¸º Markdown/HTML/Text/JSON
- å
ç½® HTMLParser æå
#js_contentæ£æï¼é¶ä¾èµéçº§æ¹æ¡ï¼ - é¢ç½® 8 个çé¨ AI ææ¯å ¬ä¼å· fakeid
- æ¯ææå ¬ä¼å·åç§°æ fakeid è·å
- æ¯æ
allå ³é®åè·åææé¢ç½®å ¬ä¼å· - èªå¨çæ summary.json æ±æ»å æ°æ®