开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 18047|回复: 2
收起左侧

[源码分享] python借助mitmproxy 监听获取DY视频

[复制链接]
发表于 2020-5-3 15:22:08 | 显示全部楼层 |阅读模式   福建省三明市
本帖最后由 老衲无悔 于 2020-5-3 15:24 编辑

前些日子研究了python下的xx监听(类似FD),拿DY试了下手..要配合mitmproxy达到监听效果,个人使用感受比FD好用和稳定很多.把源码发出现大家共同研究一下

安装好mitmproxy后,保存源码为DY.py,手机配置代理,并在手机浏览器打开http://mitm.it/安装相应的证书
纯命令行方式
mitmdump 8001 -s DY.py --set block_global=false

--set block_global=false    禁止全局代码
-q                          静默方式
-p 8001                     代理监听8001端口
-s DY.py                    使用DY.PY监听规则

有网页方式
mitmweb 8001 -s DY.py --set block_global=false



import json
import os
import urllib.request
import time
import threading
import re

def custom_time(timestamp):
    # 转换成localtime
    time_local = time.localtime(timestamp)
    # 转换成新的时间格式(2016-05-05 20:28:54)
    dt = time.strftime("%Y-%m-%d(%H%M%S)", time_local)
    #dt = time.strftime("%Y-%m-%d", time_local)
    return dt


def down(url, savepath):
    urllib.request.urlretrieve(url, savepath)


def restr(str):
    cop = re.compile("[^\u4e00-\u9fa5^a-z^A-Z^0-9]")        # 匹配不是中文、大小写、数字的其他字符
    return cop.sub('', str)                                 #将str中匹配到的字符替换成空字符


#返回JSON
def mycmd(cmd):
    p = os.popen(cmd)
    x=p.read()
    x=json.loads(x)
    return x


def mycmd2(cmd):
    p = os.popen(cmd)
    x=p.read()
    return x


def separatemedia(mp4file,savepath):
    #使用ffmpeg分离音频视频
    videocmd='ffmpeg -i {mp4} -vcodec copy -an -y {path}no_audio.mp4'.format(mp4=mp4file, path=savepath)
    mycmd2(videocmd)
    cmdstr="ffmpeg -i {mp4} -f mp3 -vn -acodec libmp3lame -y {path}audio.mp3".format(mp4=mp4file, path=savepath)
    mycmd2(cmdstr)


def down2(url, savepath, savepath2):
    urllib.request.urlretrieve(url, savepath)
    separatemedia(savepath, savepath2)


#函数名必须这样写 这是mitmdump规则
def response(flow):
    if 'aweme/v1/aweme/post/?' in flow.request.url:
        for video in json.loads(flow.response.text)['aweme_list']:
            video_info={}
            video_info['date']=custom_time(video['create_time'])                                    #发布时间
            video_info['name']=video_info['date'] if video['desc']=='' else restr(video['desc'])    #视频说明
            video_info['id']=video['aweme_id']                                                      #视频ID
            video_info['user']=restr(video['author']['nickname'])                                   #作者
            filename='d:\\video\\'+video_info['user']+'\\'+video_info['name']+'\\'
            is_exists = os.path.exists(filename)
            if not is_exists:
                os.makedirs(filename)
            else:
                filename='d:\\video\\'+video_info['user']+'\\'+video_info['name']+video_info['id']+'\\'
                os.makedirs(filename)

            imgurl=video['video']['cover']['url_list']                                              #图片地址
            if len(imgurl)>0:
                video_info['imgurl']=imgurl[0]
                t = threading.Thread(target=down, args=(imgurl[0],filename+video_info['name']+'.jpg'))
                t.setDaemon(True)
                t.start()
            downurl=video['video']['play_addr']['url_list']                                 #无水印视频地址
            if len(downurl)>0:
                video_info['downurl']=downurl[0]
                k = threading.Thread(target=down2, args=(downurl[0],filename+video_info['name']+'.mp4',filename))
                k.setDaemon(True)
                k.start()
            print(video_info)






发表于 2020-11-28 16:31:41 | 显示全部楼层   上海市上海市
我之前写过一个appium**,用scapy一边抓包,视频信息这些全部捕获

评分

参与人数 1好评 +1 精币 +2 收起 理由
bianyuan456 + 1 + 2 谢谢你分享的scapy这个软件!开拓了我的经验

查看全部评分

回复 支持 反对

使用道具 举报

签到天数: 8 天

发表于 2020-5-3 16:19:26 | 显示全部楼层   广东省东莞市
谢谢分享 !
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表