mac下使用pyhon+mimtdump 爬取m3u8

mac下使用pyhon+mimtdump 爬取m3u8

pyhon代码

test.py文件

# -*- coding: utf-8 -*-
import json
import threading

import requests
import subprocess, sys, os


def check_json_format(raw_msg):
    """ 用于判断一个字符串是否符合Json格式 :param self: :return: """
    if isinstance(raw_msg, str):  # 首先判断变量是否为字符串
        try:
            json.loads(raw_msg, encoding='utf-8')
        except ValueError:
            return False
        return True
    else:
        return False


def response(flow):
	#例如:
    # https://open.com/43567890/TYUI678/678iu.m3u8
    # http://abc.com/api/play/5678?uuid=tyu567tyu789&device=0

    url = 'api/play'
    if url in flow.request.url:
        text = flow.response.text
        if check_json_format(text):
            data_json = json.loads(text)
            if data_json and data_json.get('resp').get('path'): #判断json中有这些节点
                rescont = data_json.get('resp')
                videopath = rescont.get('path')
                title = rescont.get('title')
                print(videopath)
                filename = title + '.mp4'
                print(filename)
                t = threading.Thread(target=exec_cmd(videopath, filename))  # 创建一个线程
                t.start()  # 启动线程
                print( filename,'下载完成')


def exec_cmd(videopath, filename):
    cmd = 'ffmpeg -i ' + videopath + ' -c copy ' + filename
    print(cmd)
    cmd = cmd.encode(sys.getfilesystemencoding())
    print(cmd)
    subprocess.call(cmd, shell=True)

MAC下准备工作

  • 安装m3u8合成工具
    brew install ffmpeg
  • 安装代理工具
    brew install mitmproxy

使用方法

  • 在bash下运行:
    mitmdump -s test.py -p 8888
  • 连代理
    把手机wifi连到电脑上(查电脑ip,如192.168.0.xxx),端口8888
    1.修改网络
    2.显示高级选项
    3.选代理、手动,填ip、端口

关于ssl(报错问题)

连上代理后,手机浏览器打开http://mitm.it/按页面说明步骤操作(ios,android各不同)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100402.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【带你入门】java网络编程

    【带你入门】java网络编程网络编程网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习。在学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的。首先来问一个问题:你会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网

    2022年6月12日
    42
  • DOS的net命令详解

    DOS的net命令详解Net命令介绍Net命令是Windows操作系统中一个最重要的命令,它可以管理网络环境、服务、用户、登录等本地信息。前几个操作系统版本的Net命令会有些不同,但是后期操作系统中的Net命令的基本功能都相同。Net命令一般在DOS提示符下运行,即win+r,输入‘cmd’打开。所有的net命令均接受选项“yes”和“no”,也可缩写为“/y”和“/n”Net命令的使用帮助如图,直接输入“net/?”或者“net”即可返回net命令的具体语法。使用“nethelp命令名”还.

    2022年5月28日
    47
  • Python调用百度云api,实现截图图片文字识别

    Python调用百度云api,实现截图图片文字识别调用百度云api,实现截图图片文字识别相信大家在网上查找资料时都会遇到一些类似于pdf格式的文档,无法直接复制,手打太过于浪费时间。那么在这里我分享一个调用百度云api文字识别接口识别此类文字的python小程序。本人刚学习python时间不长,如果内容有错误还望斧正。首先我们需要去百度云官网申请一个接口点击立即使用创建应用填写需要填写的数据后点击立即创建,即可创建成功此时我们…

    2022年6月1日
    43
  • windows10许可证即将过期怎么办,激活码激活_没有产品密钥怎么激活windows

    windows10许可证即将过期怎么办,激活码激活_没有产品密钥怎么激活windows来自:http://www.xuexila.com/diannao/xitong/win7/1316897.html会提示需要激活windows,不需要每隔两小时会重启一次,有些应用是运行不起来的。

    2022年8月2日
    4
  • win10 卸载cuda

    win10 卸载cuda1.首先对于cuda8.0、cuda7.5的卸载都可以兼容安装cuda9.0之后,电脑原来的NVIDIA图形驱动会被更新,NVIDIAPhysx系统软件也会被更新(安装低版cuda可能不会被更新)。卸载时候要注意了,别动这2个。2.卸载1.前言杀毒软件别用来卸载这个了,不好找。打开电脑的控制面板,找到程序,卸载程序点击当天安装的时间,会找到刚才装的cuda软件,也包括以前N…

    2022年6月15日
    478
  • Java基础语法(三)工欲善其事,必先利其器

    Java基础语法(三)工欲善其事,必先利其器

    2021年4月21日
    181

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号