深圳之声_打造深圳最全面的企业资讯平台
您当前的位置 : 深圳之声  >  消费
python轻松抓取app接口!
2020-11-20 04:24:26 来源:互联网 阅读:-

我们使用代理软件拦截 http 或者 https 请求常见的有 Fiddler 和 Charles。这两款软件虽然比较强大,但是如果我们想实现 python 抓取一些 app 数据进行分析的话,今天介绍一款更方便的工具 mitmproxy

安装 mitmproxy

如果我们本机安装了 pip 或者 pip3

pip install mitmproxy --ignore-installed six

或者直接

brew install mitmproxy

或者下载安装包手动安装下载地址,安装完成后配置环境变量

启动

直接 mitmproxy 命令默认在端口 8080 上启动一个 mitmproxy 本地的代理服务

mitmproxy

当然也可以使用如上命令 添加 -p 自定义启动的端口如,mitmproxy -p 8888

使用 mitmweb 命令会同时在 8080 端口和 8081 端口启动两个服务,访问 8081 端口是一个 web 页面,实时显示访问数据

mitmweb

app 抓包

配置手机代理 手机代理和通用的代理配置一样,在 wifi 网络的高级里面设置手动,并输入 pc 端的 ip 地址,端口号是上面启动 mitmproxy 的端口默认 8080

https 抓包 浏览器访问 http://mitm.it 下载对应的 pem 证书并安装。然后在手机端打开需要抓包的 app 就可以正常读取 app 请求每个页面的数据包

测试抓取指定 app 接口数据 编写 python 程序并使用命令为 test.py 程序如下然后使用 mitmweb -s wlw.py 命令启动服务

#!/usr/bin/env python3# -*- coding: UTF-8 -*-import jsonfrom mitmproxy import ctx
def response(flow) : url = "https://xxx/handle/execute.jhtml" if flow.request.url.startswith(url) : text = flow.response.text data = json.loads(text) print(data)
result = data.get('result') print(result) ctx.log.info(str(result)) else: print(flow.request.url) print("\n") print(flow.request.text) print("\n") print(flow.response.text)

可以发现我们可以直接把抓包得到的数据结果在控制台打印出来,这样我们在 python 程序中获取到指定的数据以后就可以非常方便的保存和进行分析。

{'result: '{"sign":"","secret":"","oper":"loginoffice","type":"account","source":"O","version":"1009","app_version":"4.9.4_debug","device":{"OSV":"","OS":"","IMEI":"00000000-21a8-bdd2-ffff-ffff97d5da05"},"para":{"umtoken":"","password":"123456","username":"FJFZSOP1Y1"},"deviceBrand":"HUAWEI","deviceModel":"PRA-AL00X","deviceOsVersion":"8.0.0","deviceOs":"Android","name":"","userName":"FJFZSOP1Y1","code":"3","msg":"密码不正确!"}', 'arg': '{"sign":"","secret":"","oper":"loginoffice","type":"account","source":"O","version":"1009","app_version":"4.9.4_debug","device":{"OSV":"","OS":"",""00000000-21a8-bdd2-ffff-ffff97d5da05"},"para":{"umtoken":"","password":"123456","username":"FJFZSOP1Y1"},"deviceBrand":"HUAWEI","deviceModel":"PRA-AL00X","deviceOsVersion":"8.0.0","deviceOs":"Android","name":"","userName":"FJFZSOP1Y1"}'}

至此 app 的数据包的抓包流程就走完了。

申明 特此申明:本文只作为笔者自己的 app 数据抓包分析使用,请读者不要恶意使用抓包程序对商业 app 进行违法的一些行为。

python轻松抓取app接口

推荐阅读:公众网

频道推荐
  • 中国火腿和欧美火腿有什么区别?长知识了
    中国火腿和欧美火腿有什么区别?长知识了

    火腿在人们的日常生活中是一种必不可少,又十分受欢迎的食物,它主要是由猪肉经过一系列的加工制作而成的,因此深受人们的喜爱。光是在地大物博的我国,不同的地区,因为生...

    2019-09-19
  • 老北京小吃里的7大“怪味”
    老北京小吃里的7大“怪味”

    在咱北京的众多美食里,有一些比较“有个性”的吃食,像豆汁儿啊、卤煮火烧、芥末墩儿...吃不惯它们的人,还给它们起了个名字叫“怪味”小吃。可就小编而言,也没发现它...

    2019-09-19
  • 光瓶酒=低端酒?No ! 来看看各大光瓶酒的实力秀
    光瓶酒=低端酒?No ! 来看看各大光瓶酒的

    光瓶酒=低端酒?No! ,在《中国大众光瓶酒营销白皮书》中就谈到光瓶酒未来发展趋势:在大众酒时代,大众光瓶酒不再低端。大众光瓶酒是一种战略,有规模,有利润。可以...

    2019-09-19