querylist采集微信公众号文章(Python模拟操作微信App的所有历史数据方法(详见)(图))

优采云 发布时间: 2022-03-27 20:04

  querylist采集微信公众号文章(Python模拟操作微信App的所有历史数据方法(详见)(图))

  鲲之鹏技术人员将在本文中介绍一种采集通过模拟微信App操作来指定公众号所有历史数据的方法。

  通过我们的抓包分析,我们发现微信公众号的历史数据是通过HTTP协议加载的。对应的API接口如下图所示,有四个关键参数(__biz、appmsg_token、pass_ticket和Cookie)。

  

  为了得到这四个参数,我们需要模拟App的运行,让它生成这些参数,然后我们就可以抓包了。对于模拟App操作,我们之前已经介绍过通过Python模拟Android App的方法(见详情)。对于 HTTP 集成抓包,我们之前已经介绍过 Mitmproxy(详见)。

  我们需要模拟微信的操作,完成以下步骤:

  1.启动微信应用

  2. 点击“*敏*感*词*”

  3.点击“公众号”

  4.点击公众号成为采集

  5.点击右上角的用户头像图标

  6. 点击“所有消息”

  

  

  此时,我们可以从响应数据中捕获__biz、appmsg_token和pass_ticket这三个关键参数,以及请求头中的Cookie值。如下图。

  

  

  

  通过以上四个参数,我们可以构造API请求获取历史列表文章,直接调用API接口获取数据(无需模拟App操作)。核心参数如下。通过改变offset参数,可以得到所有的历史数据。

  

# Cookie

headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'}

url = 'https://mp.weixin.qq.com/mp/profile_ext?'

data = {}

data['is_ok'] = '1'

data['count'] = '10'

data['wxtoken'] = ''

data['f'] = 'json'

data['scene'] = '124'

data['uin'] = '777'

data['key'] = '777'

data['offset'] = '0'

data['action'] = 'getmsg'

data['x5'] = '0'

# 下面三个参数需要替换

# https://mp.weixin.qq.com/mp/profile_ext?action=home应答数据里会暴漏这三个参数

data['__biz'] = 'MjM5MzQyOTM1OQ=='

data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~'

data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE'

url = url + urllib.urlencode(data)

  以“数字工厂”微信公众号为例,采集流程操作截图如下:

  

  输出截图如下:

  

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线