今天再为大众介绍下运用这个工具怎样监控手机上网,并且经过抓包,把咱们想要的数据下载下来。
起步 mitmproxy
首要咱们经过执行命令 mitmweb 起步 mitmproxy,让它处理监听状态,服务会监听本机 8080 端口,起步后如下: $ mitmweb
Web server listening at http://127.0.0.1:8081/
Proxy server listening at http://*:8080
手机网络配置保准手机和电脑在同一局域网内,并查看电脑的局域网 IP 位置是多少以备用,查看方式能够用命令查看,如 Windows 系统用 ipconfig命令,Mac 或 Linux 则用命令ifconfig,看到如下图所示,找到本机在局域网的 IP 位置。
区别操作系统,可能展示结果区别,在这儿咱们能够看到红框里我本机的 IP 位置为 192.168.0.108。 配置手机代理位置,例如以下用 iphone 手机进行配置,打开设置 -> 无线局域网 -> 点此刻连接的网络 -> 点最下面点 HTTP 代理配置,选取手动后,配置代理位置为咱们电脑的 IP位置和 mitmproxy 的监听端口,配置如下图所示:
此刻咱们就能够让手机经过电脑上网了,不外日前手机 App 都是经过 HTTPS 加密请求,因此咱们必须在手机上安装个 mitmproxy 的 HTTPS 证书。接下来咱们打开手机浏览器,输入网址:mitm.it,打开如下图所示页面,选取对应手机的操作系统,下载证书并安装。
在这儿我点 Apple 的图标下载证书,下载后等待安装:
单击上面的安装,可能会显现信任的提示,只要选取信任证书就能够了,下面是安装好的界面如下图:
好了,配置完成下面咱们点开个手机 APP 看到电脑 mitmweb 的页面上,已然显现请求内容了。
编写下载脚本
好了,此刻经过分析拦截的请求,咱们起始用 Python 编写代码,经过解析视频的 url 将视频下载到本地。在这儿咱们先来打印下数据,新建文件 xiaoshipin.py,而后编写如下代码,实现将已编码的 json 字符串解码为 python 对象: # xiaoshipin.py
import json
def response(flow):
url=https://api.amemv.com/aweme/v1/aweme/post/
#筛选出以上面url为开头的url
if flow.request.url.startswith(url):
text=flow.response.text
#将已编码的json字符串解码为python对象
data=json.loads(text)
print(data)
编辑完后保留,而后执行命令:mitmweb -s xiaoshipin.py,带上这段脚本来运行咱们的代理服务,刷新几个视频,会看到如下图所示内容:
其中就包括了咱们必须的下载位置信息,接下来咱们只需提取视频的 url ,并且缓存视频到本地就 OK 了。
下面咱们就来修改上面的 xiaoshipin.py 的代码,完善下视频下载的功能。 #xiaoshipin.py
#引入包
import json,os
import requests
# 只拦截并处理返回请求
def response(flow):
# 请求的 url
url=https://api.amemv.com/aweme/v1/aweme/post/
#筛选出以上面url为开头的url
ifflow.request.url.startswith(url):
text=flow.response.text#将已编码的json字符串解码为python对象
data=json.loads(text)
# 刚分析看到每一个视频的所有信息
# 都在aweme_list中
video_url=data[aweme_list]
# 设置下载路径
path=/Users/xx/shipin
# 倘若文件夹不存在,则新建
if not os.path.exists(path):
os.mkdir(path)
# 循环所有视频 url
for each in video_url:
#视频描述
desc=each[desc]
url=each[video][play_addr][url_list][0]
# 设置视频名叫作filename=path+/+desc+.mp4
# 用 request 请求视频流
req=requests.get(url=url,verify=False)
# 保留视频文件
with open(filename,ab) asf:
f.write(req.content)
f.flush()
print(filename,下载完毕)上面我已然把关联代码注释好了,此刻咱们保留编辑好的代码,而后再次执行命令:mitmweb -s xiaoshipin.py,起步监听服务。而后打开手机再次下视频,就会看到视频是不是已然都存到本地了。
总结
本文为大众介绍了怎样经过 mitmproxy工具下载手机上浏览的小视频,当然除了视频他还能够下载音乐啊照片啊什么的,只要你能经过拦截工具分析你想要的内容在哪个请求中,而后对这个请求返回内容进行搜索分析,而后再用今天这个工具,再经过简单的 Python 编码实现自动处理完成就能够了。
|