批量获取公众号文章列表

目标

想获取某个公众号下的所有文章列表,并解析出文章内容,保存成txt或入库。

工具及版本

fiddler版本:

https://valuetodays.github.io/statics/images/blog/2022-07-29-wxmap_fiddler/wxmp_0_fiddler_version.png

微信PC端版本:

https://valuetodays.github.io/statics/images/blog/2022-07-29-wxmap_fiddler/wxmp_0_wechat_version.png

步骤

  • 抓包
  • 批量获取

实战

抓包

因为在windows上无法像chrome那样查看微信公众号的请求,此处使用fiddler来抓包。

打开fiddler,并配置https,重启。

打开页面(记为A)(注意,必须是这个页面才能抓到请求包)

https://valuetodays.github.io/statics/images/blog/2022-07-29-wxmap_fiddler/wxmp_2_has_api.png

如下页面(记为B)不可用,抓包时只能抓到图片地址。

https://valuetodays.github.io/statics/images/blog/2022-07-29-wxmap_fiddler/wxmp_1_no_api.png

访问任何一篇文章后是如下图:

https://valuetodays.github.io/statics/images/blog/2022-07-29-wxmap_fiddler/wxmp_1_article_detail.png

点击作者名称,就去到A页面了。然后向下滚动页面,就能在fidder中看到请求了。如下

https://valuetodays.github.io/statics/images/blog/2022-07-29-wxmap_fiddler/wxmp_1_requests_in_fiddler.png

右键Copy -> Just url。复制到记事本中即可进行分析。

url如下

https://mp.weixin.qq.com/mp/author?action=get_articles
&author_id=ofMoI4_N8XxUE_6lXsyAqoZmzss
&scene=142
&from_article_id=71057865667352ss
&limit=30
&uin=MjI3MTQxNTIz
&key=63d9cd07527e0387a4c1cedb1143b23ccec859e43354a8d530b23ad85900138d50921c8f319fdfb4ab4fa99310a7812acb170431a5622b5eaa4b279b31bc98dacb801c7c65164ca4ffa9fd14fa634d3cb12d110ebce615fad708800141d2d06ea2c045e7a70bf3bd3aa6474b0889a0e71f7f13e92
&pass_ticket=rpwto8U3JAXkvHbKNjtrXR65MvXGNnZ12TcOB80NvOBVJALj4lg14mi
&wxtoken=
&devicetype=Windows%26amp%3Bnbsp%3B10%26amp%3Bnbsp%3Bx64
&appmsg_token=1176_llaviEPfPqLJGP0uaYXjL8mp0caBD0uP8FNRKA~~
&x5=0
&f=json

参数说明如下:

  • action=get_articles 固定值
  • author_id 作者id
  • scene=142 固定值
  • from_article_id=71057865667352ss 上一个文章的id,为空则是从头开始获取,【需要变动】
  • limit=30 每次获取文章的条数
  • uin=MjI3MTQxNTIz 当前登录的微信账号的唯一id(在多个公众号下是相同的)
  • key=63d9c 加密值,相当于密码,一定时间后会过期
  • pass_ticket=xxx 可以理解成token,
  • wxtoken= 可以理解成token
  • devicetype=Windows 设备类型
  • appmsg_token=1176_llaviEPfPqLJGP0uaYXjL8mp0ca 未知
  • x5=0 未知
  • f=json 格式

使用程序处理时,仅from_article_id需要动态,其它固定即可。

批量获取

获取到api后,就好办了。