Airtest+Mitmprxoy自动爬取APP内容

这里以微博为例,微博网页版无法查看全部粉丝
在这里插入图片描述
但是微博APP可以,所以从手机端抓取,我用的是模拟器,用fiddler抓包,获取微博粉丝的接口:https://api.weibo.cn/2/cardlist
在这里插入图片描述
然后就可以用mitmproxy拦截请求了。
1、首先要安装mitmproxy,可以使用pip install mitmproxy直接安装,另外还会附带mitmdump和mitmweb这两个组件。在Windows上也可以到https://github.com/mitmproxy/mitmproxy/releases/获取安装包,双击安装包即可安装。
2、证书配置
对于mitmproxy来说,想要拦截HTTPS请求,就需要设置证书。首先运行mitmdump命令启动mitmdump,然后我们就可以在用户目录下的.mitmproxy文件中找到CA证书。
在这里插入图片描述
在Windows下只需双击mitmproxy-ca.p12,就会出现导入证书的引导页
在这里插入图片描述
直接点击“下一步”,出现密码提示设置,这里不需要设置密码,直接“下一步”即可。
在这里插入图片描述
这里选择“将所有的证书都放入下列存储”,
在这里插入图片描述
然后点击“浏览”,选择“受信任的根证书颁发机构”,点击确定。
在这里插入图片描述
然后出现“导入成功”的提示页面,此时电脑上证书已经安装好了。
在这里插入图片描述
3、模拟器安装证书
由于我是用模拟器来运行微博,同样需要安装证书。这里用的是MuMu模拟器
点击红色箭头处的“文件共享”
在这里插入图片描述
将用户目录下.mitmproxy文件夹下的mitmproxy-ca-cert.pem文件拖到共享文件夹中
在这里插入图片描述
然后打开模拟器“设置”——>“安全”——>“从SD卡安装”
在这里插入图片描述
搜索mitmproxy
在这里插入图片描述
双击查找到的.pem文件,就会出现“为证书命名”的界面,我这里命名为“mitmproxy”,点击确定即可。
在这里插入图片描述
4、mitmproxy的使用
和charles一样,mitmproxy在PC的8080端口运行,然后开启一个代理服务,这个服务实际上是一个HTTP/HTTPS的代理。
手机和PC在同一个局域网内,设置代理为mitmproxy的代理地址,这样手机在访问互联网的时候流量数据包就会流经mitmproxy,mitmproxy再去转发这些数据包到真实的服务器,服务器返回数据包时再由mitmproxy转发回手机,这样mitmproxy就相当于起到了中间人的作用,抓到所有Reqeust和Response,另外这个过程还可以对接到mitmdump,抓取到的Request和Response的具体内容都可以直接用python来处理,完成数据的解析和存储过程。
(1)设置代理
和fiddler相似,打开“设置”——>“WLAN”——>鼠标左键长按wifi
在这里插入图片描述
“修改网络”——“代理”——>“手动”,将代理改为本机电脑的ip,端口为8080,然后点击“保存”
在这里插入图片描述
在这里插入图片描述
此时在本地电脑上打开终端,输入mitmdump,会出现正在监听的窗口
在这里插入图片描述
接下来就可以写代码了,打开Pycharm,创建weibo.py

import json

def response(flow):
    response = flow.response
    request = flow.request
    # 粉丝列表接口
    url = "https://api.weibo.cn/2/cardlist"
    if request.url.startswith(url):
        response_str = json.loads(response.text)
        print('*' * 100)
        print(response_str)
        try:
            cards = response_str["cards"][0]["card_group"]
            for card in cards:
                # 粉丝id
                id = card["user"]["id"]
                # 粉丝昵称
                name = card["user"]["name"]
                print(id, name)
                with open("weibo.txt", "a", encoding="utf-8") as file:
                    file.write(id + "," + name + "\n")
        except Exception as e:
            print(e)

然后执行mitmdump -s weibo.py来运行.py文件,然后模拟器滑动微博粉丝列表,控制台打印输出内容
在这里插入图片描述
与此同时生成包含粉丝id和name的weibo.txt文件。
在这里插入图片描述
5、Airtest的使用
从上面来看,我们需要手动滑动粉丝列表才能不断的获取到数据,所以可以使用airtest来模拟人的动作。关于Airtest的使用中文文档上有详细的教程。http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/
这里只作简单了解。
(1)首先从官网下载airtest(http://airtest.netease.com/download.html),解压后找到AirtestIDE.exe文件,双击执行。
在这里插入图片描述
打开Airtest IDE,连接模拟器,
在这里插入图片描述
点击右侧“连接”,可以看到上面设备连接出现了设备,点击“connect”
在这里插入图片描述
连接成功,右侧出现屏幕截图
在这里插入图片描述
在Poco辅助窗口选择“Android”,在脚本编辑窗弹出内容点击“Yes”
在这里插入图片描述
在这里插入图片描述
选取左侧Poco辅助窗的摄像头
在这里插入图片描述
然后右侧模拟器屏幕选定全局,然后鼠标向上滑动,放开鼠标脚本编辑窗自动生成代码
在这里插入图片描述
运行代码会看到右侧窗口粉丝列表一直向上拖动,mitmdump控制台输出响应,成功啦!
在这里插入图片描述

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Airtest, Poco, Python, Pytest, Allure是一些用于实现Android App自动化测试框架的工具。这些工具结合使用可以实现对应用元素的定位(使用Airtest和Poco),测试用例的管理和执行(使用Pytest),以及生成测试报告(使用Pytest-HTML或Allure)。 Airtest是一个基于Python的UI自动化测试框架,它可以用于Android、iOS等平台的应用自动化测试。它提供了丰富的API来进行界面元素的定位和操作,以及对应用的各种操作进行模拟和验证。 Poco是Airtest的一个扩展库,它提供了一套更简单易用的API来进行应用元素的定位和操作。Poco可以与Airtest结合使用,使得测试用例编写更加简单和高效。 Python是一种流行的编程语言,对于测试框架的编写和测试脚本的编写都非常适用。通过使用Python,可以方便地编写和管理测试用例,以及进行各种数据处理和操作。 Pytest是Python的一个测试框架,它提供了丰富的功能和插件来管理和执行测试用例。Pytest可以与Airtest和Poco结合使用,以便更好地管理和执行自动化测试用例。 Allure是一个用于生成漂亮且可视化的测试报告的工具。它可以将测试结果以图表和图形的形式展示,能够清晰地展示测试用例的执行情况和结果。 综上所述,Airtest、Poco、Python、Pytest和Allure都是在Android App自动化测试中常用的工具和框架。它们的结合使用可以帮助开发人员和测试人员更方便地进行自动化测试的编写、管理和执行,并生成美观的测试报告来展示测试结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python + Airtest + poco + pytest + pytest-html 实现Android App自动化测试框架](https://blog.csdn.net/weixin_38813807/article/details/129179944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [airtest/poco+pytest+allure+jenkins框架来了](https://blog.csdn.net/George513/article/details/119034783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值