应用场景:比如你操作一个APP,从登录,添加商品到购物车,然后点击去结算,支付,最后成功支付,最后到达订单详情,而这个脚本,就是将所这些操作触发的接口全部保存起来
原理:实际上就是利用MitmProxy做中间人代理,后台通过一系列规则,然后获取到每个flow(也可以叫做一个请求上下文,也就是我们常说的,请求+响应一个完整的会话),然后将这些flow的数据全部存起来,最后写到excel中去
下面来开始讲实现过程:
一:搭建MitmProxy环境
mac的用户参考文章:https://blog.csdn.net/Tester_xjp/article/details/104933501
二:编写代理脚本,这里命令成 one.py
依赖模块 pandas,xlsxwriter(这个直接pip安装即可)
# @project_name :person
# @file_name :one
# @auth :xiejiangpeng
# @time :2020-02-29
# @software :PyCharm
# @message
import mitmproxy.http
import pandas as pd
from mitmproxy import ctx
from urllib.parse import unquote
# 过滤
fittler_suffix = (".jpg", ".png", ".gz")
# 白名单域名
whitelist_host = ["mall.xsyxsc.com", "trade.xsyxsc.com", "mall-store.xsyxsc.com", "user.xsyxsc.com", "supertest"]
# 生成的api_info_excel地址
excel_filepath = "/Users/xiejiangpeng/python/mygithub/mypython/person/mitmproxj_api/api_info.xlsx"
# 没有在过滤规则中,同时在白名单域名中的host,当请求数达到下方设置值时,生成excel,同时断开代理
f