1.安装

pip3 install mitmproxy

  或者下载安装指定版本:https://mitmproxy.org/downloads/

  2.配置证书

    对于mitmproxy来说,如果想要截获HTTPS请求,就需要设置证书。mitmproxy在安装后会提供一套CA证书,只要客户端信任了mitmproxy提供的证书,就可以通过  mitmproxy获取HTTPS请求的具体内容,否则mitmproxy是无法解析HTTPS请求的。

  首先,运行以下命令产生CA证书,并启动mitmdump:

mitmdump

  然后就可以搜索.mitmproxy文件夹

  

  点击mitmproxy-ca.p12进行安装,安装到受信任的根目录。。那个文件夹。

  但是我这边的没有那个引导选项,我就这么做

  

打开ie浏览器
选择intnet选项
点击内容选项卡
点击证书
点击受信任的根证书颁发者
点击导入
选择我们要导入的证书

  

  至于手机端就是和电脑在同一局域网,并设置电脑ip+8080为代理

然后访问

mitm.it

  下载证书,安装证书

3.使用

  脚本简单使用

import json
def response(flow):
# 这个别问为啥了,必须这么写
url = 'www.xxx.com'
if url in flow.request.url:
text = json.loads(flow.response.content)
print(text)

  把脚本保存为py文件(xx.py)

  用mitmdump加载这个py文件

mitmdump -s xx.py 

4.实例(当当)

  当手机端和mitmproxy都下载配置好了

  编写这么一个脚本(xxxx.py)

import json

def response(flow):
url = 'product.mapi.dangdang.com'
page_size = 'page_size=15'
# 对url进行筛选,只选取评论的url
if url and page_size in flow.request.url:
text = flow.response.text
data = json.loads(text)
for item in data['review_list']:
# 获取用户昵称
if len(item['cust_name']) > 0:
name = item['cust_name']
else:
name = '无名'
print(item['cust_name'])
# 获取用户评分
if len(item['score']) > 0:
score = str(item['score'])
else:
score = ''
print(item['score'] + '\n')
# 获取用户评论
content = item['content'].replace(',', ',').replace('\n', '')
print(item['content'] + '\n')
# 获取用户评论时间
creation_date = item['creation_date']
print(item['creation_date'])
# 获取有用数
if len(str(item['total_helpful_num'])) > 0 :
total_helpful_num = str(item['total_helpful_num'])
else:
total_helpful_num = ''
print(item['total_helpful_num'])
# 获取无用数
if len(str(item['total_useless_num'])) > 0 :
total_useless_num = str(item['total_useless_num'])
else:
total_useless_num = ''
print(item['total_useless_num'])
# 获取评论数
if len(str(item['total_reply_num'])) > 0 :
total_reply_num = str(item['total_reply_num'])
else:
total_reply_num = ''
print(item['total_reply_num'])
print('\n')
# 将获取信息写入csv文件
with open('alive.csv', 'a+', encoding='utf-8-sig') as f:
f.write(name + ',' + score + ',' + content + ',' + creation_date + ',' + total_helpful_num + ',' + total_useless_num + ',' + total_reply_num + '\n')

  利用mitmdump启动这个脚本文件

mitmdump  -s xxxx.py

  当手机往下滑的时候,就会出现如下的效果

  

  脚本文件所在的位置生成这么一个文件

  

  接下来就是连接手机(模拟器)和airtest,然后自动化操作滑动的动作了

  airtest脚本

# -*- encoding=utf8 -*-
__author__ = "Administrator" from airtest.core.api import *
auto_setup(__file__) from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
poco(text="当当").click()
time.sleep()
poco(text="电子书").click()
time.sleep()
poco(name="com.dangdang.buy2:id/index_search").click()
time.sleep()
poco(name="com.dangdang.buy2:id/search_edit_input").set_text('活着')
time.sleep()
poco(name="com.dangdang.buy2:id/match_item_key").click()
time.sleep()
poco(name="com.dangdang.buy2:id/review_count_and_rate").click()
time.sleep()
poco.swipe([0.5, 0.8], [0.5, 0.2])
time.sleep()
poco.swipe([0.5, 0.8], [0.5, 0.2])
time.sleep()
poco.swipe([0.5, 0.8], [0.5, 0.2])
time.sleep()
poco(name="android.widget.TextView").click()
time.sleep()
while True:
poco.swipe([0.5, 0.8], [0.5, 0.2])
time.sleep()

mimtproxy的使用(windows)的更多相关文章

  1. Windows server 2012 添加中文语言包(英文转为中文)(离线)

    Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...

  2. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  3. C# 注册 Windows 热键

    闲扯: 前几日,一个朋友问我如何实现按 F1 键实现粘贴(Ctrl+V)功能,百度了一个方法,发给他,他看不懂(已经是 Boss 的曾经的码农),我就做了个Demo给他参考.今日得空,将 Demo 整 ...

  4. Windows 7上执行Cake 报错原因是Powershell 版本问题

    在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...

  5. 在离线环境中发布.NET Core至Windows Server 2008

    在离线环境中发布.NET Core至Windows Server 2008 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布 ...

  6. Windows平台分布式架构实践 - 负载均衡

    概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...

  7. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

  8. 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)

    环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...

  9. 1.初始Windows Server 2012 R2 Hyper-V + 系统安装详细

    干啥的?现在企业服务器都是分开的,比如图片服务器,数据库服务器,redis服务器等等,或多或少一个网站都会用到多个服务器,而服务器的成本很高,要是动不动采购几十台,公司绝对吃不消的,于是虚拟化技术出来 ...

随机推荐

  1. isdigital()函数

    函数说明: 主要用于检查其参数是否为十进制数字字符. 头文件: C——#include<ctype.h> C++——#include<cctype> 函数定义:  int is ...

  2. golang seelog使用

    golang中自带的有log包,但是功能并不能满足我们.很多人推荐seelog,我们今天一起学习下. 安装 go get github.com/cihub/seelog 快速开始 引用seelog w ...

  3. MOOC(2)-Django开发get、post请求,返回json数据

    1.对get请求直接返回参数 如果请求多个参数,也只能返回一个参数,这里只返回了username参数 如果想要返回多个参数值,可以返回json格式数据 2.对get请求返回json数据 # views ...

  4. js mvvm:闲来无事,实现一个只具最基本数据双向绑定的mvvm

    近期项目内用knockoutjs. 想模拟实现数据双向绑定的基本功能. 只具有最基本的功能,且很多细节未曾考虑,也未优化精简. 能想到的缺少的模块 1事件监听,自定义访问器事件 2模版 3父子级 编码 ...

  5. js-dom运动我有废话要说

    今天整个图片上传剪切的功能 我终于不负众望不卑不亢 毫无意外的没写上 写点新得 留给N年后爱看不看的自己 咋整呢 百度之 demo一下,我就知道 屁不多放 切入正题 在js运动时候要注意布局 布局写不 ...

  6. [人工智能]NumPy基础

    理解NumPy 本文主要介绍NumPy的基础知识,NumPy是一个功能强大的Python库,允许更高级的数据操作和数学计算. 什么是NumPy NumPy,来源自两个单词:Numerical和Pyth ...

  7. Swift Property

    Swift中有下列几种属性 存储属性(Stored properties):存储实例的常量和变量,与类.结构体.枚举的实例相关 计算属性(Computed properties):通过某种方式计算出来 ...

  8. bzoj1603: [Usaco2008 Oct]打谷机 (纱布题)

    Description Input Output Sample Input Sample Output Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 7 ...

  9. go微服务框架kratos学习笔记十(熔断器)

    目录 go微服务框架kratos学习笔记十(熔断器) 什么是熔断 熔断器逻辑 kratos Breaker kratos 熔断逻辑 kratos熔断器使用说明 bladmaster client br ...

  10. 🤢保护眼睛,从更换win电脑主题开始🤢

    目的: win电脑主题颜色设置为