教你用 Python 下载手机小视频

简介: 教你用 Python 下载手机小视频

上次给大家介绍了 mitmproxy 这个抓包工具,并且演示了如何用这个工具改变你电脑上网的请求以及请求返回信息,是不是觉得还有点意思。今天再为大家介绍下使用这个工具如何监控手机上网,并且通过抓包,把我们想要的数据下载下来。


启动 mitmproxy


首先我们通过执行命令 mitmweb 启动mitmproxy,让它处理监听状态,服务会监听本机 8080 端口,启动后如下:


$ mitmwebWeb server listening at http://127.0.0.1:8081/Proxy server listening at http://*:8080


手机网络配置


  1. 保证手机和电脑在同一局域网内,并查看电脑的局域网 IP 地址是多少以备用,查看方式可以用命令查看,如 Windows 系统用 ipconfig 命令,Mac 或 Linux 则用命令 ifconfig,看到如下图所示,找到本机在局域网的 IP 地址。


image.png


不同操作系统,可能展示结果不同,在这里我们可以看到红框里我本机的 IP 地址为 192.168.0.108。


  1. 配置手机代理地址,比如以下用 iphone 手机进行配置,打开设置 -> 无线局域网 -> 点现在连接的网络 -> 点最下面点 HTTP 代理配置,选择手动后,配置代理地址为我们电脑的 IP地址和 mitmproxy 的监听端口,配置如下图所示:


image.png


  1. 现在我们就可以让手机通过电脑上网了,不过目前手机 App 都是通过 HTTPS 加密请求,所以我们需要在手机上安装个 mitmproxy 的 HTTPS 证书。接下来我们打开手机浏览器,输入网址:mitm.it,打开如下图所示页面,选择对应手机的操作系统,下载证书并安装。



微信图片_20220212170142.jpg


下载页

在这里我点 Apple 的图标下载证书,下载后等待安装:


微信图片_20220212170154.jpg


待安装


微信图片_20220212170215.jpg



单击上面的安装,可能会出现信任的提示,只要选择信任证书就可以了,下面是安装好的界面如下图:



微信图片_20220212170230.jpg


好了,配置完成下面我们点开个手机 APP 看到电脑 mitmweb 的页面上,已经出现请求内容了。


image.png


编写下载脚本


好了,现在经过分析拦截的请求,我们开始用 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,带上这段脚本来运行我们的代理服务,刷新几个视频,会看到如下图所示内容:


image.png


其中就包含了我们需要的下载地址信息,接下来我们只需提取视频的 url ,并且缓存视频到本地就 OK 了。


下面我们就来修改上面的 xiaoshipin.py 的代码,完善下视频下载的功能。



#xiaoshipin.py
#引入包import json,osimport requests
# 只拦截并处理返回请求def response(flow):    # 请求的 url    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)        # 刚分析看到每一个视频的所有信息        # 都在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') as f:                f.write(req.content)                f.flush()                print(filename,'下载完毕')


上面我已经把相关代码注释好了,现在我们保存编辑好的代码,然后再次执行命令:mitmweb -s xiaoshipin.py,启动监听服务。然后打开手机再次下视频,就会看到视频是不是已经都存到本地了。


image.png


总结


本文为大家介绍了如何通过 mitmproxy工具下载手机上浏览的小视频,当然除了视频他还可以下载音乐啊图片啊什么的,只要你能通过拦截工具分析你想要的内容在哪个请求中,然后对这个请求返回内容进行搜索分析,然后再用今天这个工具,再通过简单的 Python 编码实现自动处理完成就可以了。


目录
相关文章
|
6月前
|
Java 数据安全/隐私保护 计算机视觉
手机虚拟视频替换摄像头,QQ微信虚拟视频插件,jar代码分享
这段代码演示了如何使用JavaCV捕获视频流、处理帧数据并输出到虚拟摄像头设备。它需要JavaCV和OpenCV库支持
|
6月前
|
Web App开发 安全 数据安全/隐私保护
利用Python+Requests实现抖音无水印视频下载
利用Python+Requests实现抖音无水印视频下载
|
6月前
|
编解码 数据安全/隐私保护 Python
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序
|
3月前
|
数据采集 自然语言处理 数据可视化
Python爬取B站视频评论区情感分析:从数据采集到价值挖掘
B站作为年轻人聚集地,评论蕴含丰富情感与趋势。本文详解如何用Python爬取评论,结合SnowNLP与jieba进行中文情感分析,并通过可视化挖掘用户情绪、消费意愿与内容反馈,助力精准运营与决策。
724 0
|
4月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
6月前
|
API 数据安全/隐私保护 开发者
企业微信自动加好友软件,导入手机号批量添加微信好友,python版本源码分享
代码展示了企业微信官方API的合规使用方式,包括获取access_token、查询部门列表和创建用户等功能
|
6月前
|
存储 API 数据库
自动发短信的软件,批量自动群发短信,手机号电话号生成器【python框架】
这个短信群发系统包含以下核心功能: 随机手机号生成器(支持中国号码) 批量短信发送功能(使用Twilio API)
|
6月前
|
API 数据安全/隐私保护 Python
批量发短信的软件,自动群发短信批量工具,手机号电话生成脚本插件【python】
该工具包含三个核心模块:短信发送核心功能、配置管理系统和命令行界面。使用时需先配置API密钥和短信模板
|
6月前
|
API 数据安全/隐私保护 Python
小红书批量发布协议, 抖音自动批量发布软件脚本,笔记作品视频自动发布工具【python】
这个工具框架包含了小红书和抖音的批量发布功能,支持图片和视频处理、定时发布等功能
|
6月前
|
Web App开发 数据安全/隐私保护 Python
快手批量发布作品工具,自动上传视频发布软件,python实现自动脚本
这个脚本实现了快手批量上传视频的功能,包含登录、上传视频、添加描述和发布等完整流程

推荐镜像

更多