个人主体的公众号没有官方 API 可以获取订阅者的信息,这里分享如何使用 playwright 收集公众号粉丝信息。
playwright 自动化操作浏览器,下面这段代码自动打开公众号主页,手动登录之后,会自动把粉丝页面跳转到最后一页,在这个过程中可收集用户数据。之所以要自动操作,是因为每次最多只能跳转 25 页。
const { webkit } = require("playwright");
(async () => {
const browser = await webkit.launch({ headless: false });
const page = await browser.newPage();
await page.goto(
"https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN"
);
await page.click(".weui-desktop-data-overview:last-of-type em a");
await page.waitForSelector(".goto_area");
const pages = await page.textContent(".page_num label:last-of-type");
console.log("页数:", pages);
for (let i = 25; i < pages; i = i + 25) {
console.log(i);
if (i > pages) {
i = pages;
}
await page.fill(".goto_area input", `${i}`);
await page.click(".goto_area a");
await page.waitForResponse(
"https://mp.weixin.qq.com/cgi-bin/user_tag?action=get_user_list**"
);
if (i + 25 > pages) {
await page.fill(".goto_area input", `${pages}`);
await page.click(".goto_area a");
}
}
})();