querylist采集微信公众号文章(Python模拟安卓App操作微信App的方法(详见代码介绍))

优采云 发布时间: 2022-03-12 07:07

  querylist采集微信公众号文章(Python模拟安卓App操作微信App的方法(详见代码介绍))

  本文章主要介绍基于Python采集对微信公众号历史数据的爬取。通过文中的示例代码介绍的很详细,对大家的学习或工作有一定的参考和学习价值。需要的朋友可以参考以下

  鲲之鹏技术人员将在本文中通过模拟微信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)

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

  

  输出的屏幕截图如下所示:

  

  以上就是基于Python采集抓取微信公众号历史数据的详细内容,更多详情请关注html中文网其他相关话题文章!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线