您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

教你用 Python 下载手机小视频

时间:2022-07-17 11:37:54  来源:  作者:VT漫步

今天再为大家介绍下使用这个工具如何监控手机上网,并且通过抓包,把我们想要的数据下载下来。

启动 mitmproxy

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

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

手机网络配置

  1. 保证手机和电脑在同一局域网内,并查看电脑的局域网 IP 地址是多少以备用,查看方式可以用命令查看,如 windows 系统用 ipconfig 命令,maclinux 则用命令 ifconfig,看到如下图所示,找到本机在局域网的 IP 地址。
教你用 Python 下载手机小视频

 

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

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

 

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

 

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

教你用 Python 下载手机小视频

 

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

教你用 Python 下载手机小视频

 

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

教你用 Python 下载手机小视频

 

编写下载脚本

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

教你用 Python 下载手机小视频

 

其中就包含了我们需要的下载地址信息,接下来我们只需提取视频的 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
    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,启动监听服务。然后打开手机再次下视频,就会看到视频是不是已经都存到本地了。

教你用 Python 下载手机小视频

 

总结

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



Tags:小视频   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
自媒体小视频搬运技巧
今天和大家分享一波自媒体运营技能,让大家都可以轻松运营获取更多收益,我们都知道现在做运营的坚持下去靠的是一股顽强的毅力,更多人想要迈入自媒体行业进行运营,从中分得一杯羹...【详细内容】
2022-11-26  Search: 小视频  点击:(219)  评论:(0)  加入收藏
教你用 Python 下载手机小视频
今天再为大家介绍下使用这个工具如何监控手机上网,并且通过抓包,把我们想要的数据下载下来。启动 mitmproxy首先我们通过执行命令 mitmweb 启动 mitmproxy,让它处理监听状态,服...【详细内容】
2022-07-17  Search: 小视频  点击:(445)  评论:(0)  加入收藏
看小视频就能拿钱?这些“套路”要注意了,不少人已经被骗
随着移动网络和智能手机的不断推广,现如今几乎每个人都在通过手机上网,越来越多的中老年人,也能够“玩转”智能手机,甚至在许多方面还要强于年轻人。不过近期,部分不良商家正是抓...【详细内容】
2021-07-28  Search: 小视频  点击:(778)  评论:(0)  加入收藏
一般人怎么在抖音挣钱?抖音里如何在小视频中挂售商品?
抖音里如何在小视频中挂售商品?抖音橱窗和抖音小店哪一个更具有优势?如何利用抖音赚钱?是大多数玩抖音的所关心的话题。很多人平时都会浪费一定的时间在抖音上,你在浪费时间,可能...【详细内容】
2020-03-07  Search: 小视频  点击:(398)  评论:(0)  加入收藏
▌简易百科推荐
一篇文章教会你使用Python中三种简单的函数
所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。一、函数简介所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。二、函数定义...【详细内容】
2024-04-11  Go语言进阶学习  微信公众号  Tags:Python   点击:(12)  评论:(0)  加入收藏
一篇文章带你了解Python的分布式进程接口
在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。一、前言在Thread和Process中,应当优...【详细内容】
2024-04-11  Go语言进阶学习    Tags:Python   点击:(10)  评论:(0)  加入收藏
Python 可视化:Plotly 库使用基础
当使用 Plotly 进行数据可视化时,我们可以通过以下示例展示多种绘图方法,每个示例都会有详细的注释和说明。1.创建折线图import plotly.graph_objects as go# 示例1: 创建简单...【详细内容】
2024-04-01  Python技术    Tags:Python   点击:(15)  评论:(0)  加入收藏
Python 办公神器:教你使用 Python 批量制作 PPT
介绍本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。本文假设你已经安装了python和这两个库。本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并...【详细内容】
2024-03-26  Python技术  微信公众号  Tags:Python   点击:(21)  评论:(0)  加入收藏
Python实现工厂模式、抽象工厂,单例模式
工厂模式是一种常见的设计模式,它可以帮助我们创建对象的过程更加灵活和可扩展。在Python中,我们可以使用函数和类来实现工厂模式。一、Python中实现工厂模式工厂模式是一种常...【详细内容】
2024-03-07  Python都知道  微信公众号  Tags:Python   点击:(38)  评论:(0)  加入收藏
不可不学的Python技巧:字典推导式使用全攻略
Python的字典推导式是一种优雅而强大的工具,用于创建字典(dict)。这种方法不仅代码更加简洁,而且执行效率高。无论你是Python新手还是有经验的开发者,掌握字典推导式都将是你技能...【详细内容】
2024-02-22  子午Python  微信公众号  Tags:Python技巧   点击:(43)  评论:(0)  加入收藏
如何进行Python代码的代码重构和优化?
Python是一种高级编程语言,它具有简洁、易于理解和易于维护的特点。然而,代码重构和优化对于保持代码质量和性能至关重要。什么是代码重构?代码重构是指在不改变代码外部行为的...【详细内容】
2024-02-22  编程技术汇    Tags:Python代码   点击:(44)  评论:(0)  加入收藏
Python开发者必备的八个PyCharm插件
在编写代码的过程中,括号几乎无处不在,以至于有时我们会拼命辨别哪个闭合括号与哪个开头的括号相匹配。这款插件能帮助解决这个众所周知的问题。前言在PyCharm中浏览插件列表...【详细内容】
2024-01-26  Python学研大本营  微信公众号  Tags:PyCharm插件   点击:(92)  评论:(0)  加入收藏
Python的Graphlib库,再也不用手敲图结构了
Python中的graphlib库是一个功能强大且易于使用的工具。graphlib提供了许多功能,可以帮助您创建、操作和分析图形对象。本文将介绍graphlib库的主要用法,并提供一些示例代码和...【详细内容】
2024-01-26  科学随想录  微信公众号  Tags:Graphlib库   点击:(95)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  大雷家吃饭    Tags:Python   点击:(63)  评论:(0)  加入收藏
站内最新
站内热门
站内头条