博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mimtproxy的使用(windows)
阅读量:5163 次
发布时间:2019-06-13

本文共 3693 字,大约阅读时间需要 12 分钟。

  1.安装

pip3 install mitmproxy

  或者下载安装指定版本:

  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 jsondef 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 jsondef 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 = '0'            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 = '0'            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 = '0'            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 = '0'            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 AndroidUiautomationPocopoco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)poco(text="当当").click()time.sleep(2)poco(text="电子书").click()time.sleep(2)poco(name="com.dangdang.buy2:id/index_search").click()time.sleep(4)poco(name="com.dangdang.buy2:id/search_edit_input").set_text('活着')time.sleep(2)poco(name="com.dangdang.buy2:id/match_item_key").click()time.sleep(3)poco(name="com.dangdang.buy2:id/review_count_and_rate").click()time.sleep(3)poco.swipe([0.5, 0.8], [0.5, 0.2])time.sleep(3)poco.swipe([0.5, 0.8], [0.5, 0.2])time.sleep(3)poco.swipe([0.5, 0.8], [0.5, 0.2])time.sleep(2)poco(name="android.widget.TextView").click()time.sleep(2)while True:    poco.swipe([0.5, 0.8], [0.5, 0.2])    time.sleep(2)

 

转载于:https://www.cnblogs.com/tjp40922/p/10800886.html

你可能感兴趣的文章
2017-2018-1 20155313 《信息安全系统设计基础》第八周课下作业2
查看>>
nginx的缓存设置提高性能
查看>>
C基础--单链表的构造
查看>>
光标定位、模糊查询
查看>>
获取Android控件ListView中被选中的某一列的值
查看>>
UVA 11374 Airport Express 机场快线 Dijistra+路径
查看>>
UIWebView 无缝切换到 WKWebView
查看>>
【python小练】0002
查看>>
【Django】不知道为什么就是想学一下 01
查看>>
C# Single Instance WinForms and Microsoft.VisualBasic.dll
查看>>
Query String模块和http小爬虫和events模块和fs模块和stream模块
查看>>
NOIP前的水题记录
查看>>
python:python之禅
查看>>
isKindOf和isMemberOf的区别
查看>>
深入浅出了解frame和bounds
查看>>
InstallShield 打包时需要注意
查看>>
我和面向对象有个约会
查看>>
转:Android Context的理解
查看>>
指定gpu
查看>>
TestNG Assert 详解
查看>>