使用Fiddler Classic抓包工具批量下载音频资料

1. 通过F12开发者工具,下载音频文件

浏览器打开音频列表->F12快捷键->网络->媒体,播放一个音频文件,右边媒体下生成一个音频文件,右击“在新标签页中打开”,可以下载这个音频文件。

2.通过Fiddler Classic抓包工具批量下载音频资料

每播放一个音频文件,页面就会向服务端发送一个get请求。浏览器打开get请求的URL地址,可下载这个音频文件。

播放了多个音频文件,页面发送多个get请求,我们现在通过Fiddler Classic抓包工具获取这多个get请求的URL地址,然后通过程序批量下载这些文件。

1) 下载Fiddler Classic工具,下载地址:Download Fiddler Web Debugging Tool for Free by Telerik

2)开启接收https请求

Fiddler Classic默认不接收https请求,需要开启一下。 Tools->Options->HTTPS

3)点击左下角,开启/关闭抓包。 显示“Capturing”为开启状态,显示空白为关闭状态。

4)点击“Remove all” 可清理抓取到的所有请求。

5)Fiddler Classic开启抓包-> 播放音频

Fiddler Classic抓取到音频播放的get请求,其中“audio/mp4”格式的请求数据,为想要获取到的url请求地址。

6)将播放音频抓到的所有地址,复制粘贴到excel表格中

7)通过程序过滤出“audio/mp4”格式的请求,并发送get请求,自动下载音频文件。

下图是创建的winform界面:

该界面的功能的实现:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Net.WebRequestMethods;namespace Test
{public partial class DownloadMP4 : Form{public DownloadMP4(){InitializeComponent();}private void Form2_Load(object sender, EventArgs e){tbxMP4.Text = "G:\\Downloads\\";}DataTable _dtExcel = null;List<RespondModel> _list = new List<RespondModel>();private void btnExcel_Click(object sender, EventArgs e){_dtExcel = GetExcelData();}private void btnMP4_Click(object sender, EventArgs e){if (_dtExcel == null) return;string httpUrl = "https://audiopay.cos.tx.xmcdn.com";if (_dtExcel.Rows?.Count > 0){_list = new List<RespondModel>();foreach (DataRow dr in _dtExcel.Rows){if (dr["Content-Type"].ToString().Contains("mp4")){if (_list.FindIndex(p => p.URL.Split('?').First().Split('/').Last() == dr["URL"].ToString().Split('?').First().Split('/').Last()) < 0){RespondModel mod = new RespondModel();mod.URL = httpUrl + dr["URL"].ToString();//mod.ContentType = "audio/mp4";_list.Add(mod);}}}}int i = 0;if (_list.Count > 0) {foreach (RespondModel resp in _list) {string fileName = tbxMP4.Text + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".mp4";GetPostContent(resp.URL, fileName);i += 1;progressBar1.Value = i * 100 / _list.Count;}}MessageBox.Show($"下载完成!文件数:{i}");}private DataTable GetExcelData(){OpenFileDialog ofd = new OpenFileDialog();ofd.Title = "选择Excel文件";ofd.InitialDirectory = System.Windows.Forms.Application.StartupPath + "\\";ofd.Filter = "Excel文件 (*.xlsx)|*.xlsx|Excel文件 (*.xls)|*.xls|所有文件 (*.*)|*.*";ofd.RestoreDirectory = true;if (ofd.ShowDialog() == DialogResult.OK){string fileName = ofd.FileName;tbxExcel.Text = fileName;string connectionString = $"Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '{fileName}';Extended Properties=Excel 8.0";if (fileName.Contains("xlsx")){connectionString = $"Provider=Microsoft.Ace.OleDb.12.0; Data Source = '{fileName}';Extended Properties=Excel 12.0";}OleDbConnection conn = new OleDbConnection(connectionString);conn.Open();DataTable dtNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });string sql = $"select * from [{dtNames.Rows[0]["TABLE_NAME"]}]"; //[Sheet1$]OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);DataSet ds = new DataSet();adapter.Fill(ds);conn.Close();return ds?.Tables[0];}return null;}private HttpClient _httpClient;public void GetPostContent(string url, string localSavePath){try{ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);myRequest.Method = "GET";myRequest.ContentType = "application/x-www-form-urlencoded";myRequest.Proxy = null;// Get responseHttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();Stream responseStream = myResponse.GetResponseStream();Stream stream = new FileStream(localSavePath, FileMode.Create);byte[] bArr = new byte[1024];int size = responseStream.Read(bArr, 0, (int)bArr.Length);while (size > 0){stream.Write(bArr, 0, size);size = responseStream.Read(bArr, 0, (int)bArr.Length);}stream.Close();responseStream.Close();}catch (System.Exception ex){throw ex;}}}public class RespondModel{public string URL { get; set; }public string ContentType { get; set; }}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/460039.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新能源行业必会基础知识---电力现货问答---第9问---什么是输电权?什么是输电权市场?

新能源行业必会基础知识-----电力现货问答-----主目录-----持续更新https://blog.csdn.net/grd_java/article/details/142909208 虽然这本书已经出来有几年了&#xff0c;现货市场已经产生了一定变化&#xff0c;但是原理还是相通的。还是推荐大家买来这本书进行阅读观看&#…

音视频入门基础:AAC专题(11)——AudioSpecificConfig简介

音视频入门基础&#xff1a;AAC专题系列文章&#xff1a; 音视频入门基础&#xff1a;AAC专题&#xff08;1&#xff09;——AAC官方文档下载 音视频入门基础&#xff1a;AAC专题&#xff08;2&#xff09;——使用FFmpeg命令生成AAC裸流文件 音视频入门基础&#xff1a;AAC…

java-web-day5

1.spring-boot-web入门 目标: 开始最基本的web应用的构建 使用浏览器访问后端, 后端给浏览器返回HelloController 流程: 1.创建springboot工程, 填写模块信息, 并勾选web开发的相关依赖 注意: 在新版idea中模块创建时java下拉框只能选17, 21, 23 这里选17, maven版本是3.6.3, 很…

基于SSM的智能台球厅系统

基于SSM的智能台球厅系统设计与实现 摘要 智能台球厅系统是一个以用户便捷体验为核心的管理系统&#xff0c;结合SSM&#xff08;Spring、Spring MVC、MyBatis&#xff09;框架来实现台球厅日常业务流程的自动化和智能化管理。系统主要包含用户预约、场地管理、设备状态监控、支…

String的长度有限,而我对你的思念却无限延伸

公主请阅 1. 为什么学习string类&#xff1f;2. string类的常用接口2.1 string类对象的常见构造2.1.1 string 2.2 operator[]2.3 迭代器2.4 auto自动推导数据类型2.5 范围for2.6 迭代器第二层2.7 size和length获取字符串的长度2.8 max_size 获取这个字符串能设置的最大长度2.9 …

spring-第十一章 注解开发

spring 文章目录 spring前言1.注解回顾1.1原理1.2springIOC注解扫描原理1.2.1解释1.2.2案例 2.声明bean的注解补充&#xff1a;Bean注解&#xff0c;管理三方包对象 3.spring注解的使用3.1加入aop依赖3.2配置文件中添加context命名空间3.3配置文件中指定要扫描的包3.4在Bean上使…

Linux 之 文件属性与目录、字符串处理、系统信息获取

学习任务&#xff1a; 1、 文件属性与目录&#xff1a;Linux 文件类型、stat、chmod、链接文件、目录文件 2、 字符串处理&#xff1a;字符串输入/输出、strlen、strcat、strcpy、memset、atoi()、atol()、atoll() 3、 系统信息&#xff1a;proc 虚拟文件系统&#xff08;重点&…

搜索引擎算法更新对网站优化的影响与应对策略

内容概要 随着互联网的不断发展&#xff0c;搜索引擎算法也在不断地进行更新和优化。了解这些算法更新的背景与意义&#xff0c;对于网站管理者和优化人员而言&#xff0c;具有重要的指导意义。不仅因为算法更新可能影响到网站的排名&#xff0c;还因为这些变化也可能为网站带…

省域经济高质量发展水平测算及数据2000-2021年

经济高质量发展水平测算&#xff0c;是通过一系列科学的方法和指标&#xff0c;对经济活动的各个方面进行评估和量化的过程。这不仅涉及到经济增长的速度&#xff0c;更涵盖了效益、效率、可持续性等多个维度。包含了2000年至2021年期间&#xff0c;全国31个省份、自治区、直辖…

MacOS/Macbook用户自定义字体安装教程

Mac本自定义字体 示例机型一、下载相关字体文件到本地二、打开启动台三、选择其他四、选择字体册五、添加字体六、选择字体七、安装字体八、安装完成 MacOS官网安装教程 示例机型 系统&#xff1a;MacOS12.6&#xff0c;芯片&#xff1a;M1Pro 一、下载相关字体文件到本地 二…

【undefined reference to xxx】zookeeper库编译和安装 / sylar项目ubuntu20系统编译

最近学习sylar项目&#xff0c;编译项目时遇到链接库不匹配的问题&#xff0c;记录下自己解决问题过程&#xff0c;虽然过程很艰难&#xff0c;但还是解决了&#xff0c;以下内容供大家参考&#xff01; undefined reference to 问题分析 项目编译报错 /usr/bin/ld: ../lib/lib…

sql进阶篇

1.更新记录 AC&#xff1a; update examination_info set tag replace(tag, "PYTHON", "Python") where tag "PYTHON";2.删除记录 AC&#xff1a; DELETE FROM exam_record WHERE timestampdiff(minute, start_time, submit_time) < 5AND…

【每日刷题】Day145

【每日刷题】Day145 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 375. 猜数字大小 II - 力扣&#xff08;LeetCode&#xff09; 2. LCR 112. 矩阵中的最长递增路径 …

【tomcat系列漏洞利用】

Tomcat 服务器是一个开源的轻量级Web应用服务器&#xff0c;在中小型系统和并发量小的场合下被普遍使用。主要组件&#xff1a;服务器Server&#xff0c;服务Service&#xff0c;连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心。一个Container…

WPF的行为(Behavior)

WPF&#xff08;Windows Presentation Foundation&#xff09;是微软.NET框架中用于构建Windows客户端应用程序的UI框架。它提供了一种声明性的方式来定义用户界面&#xff0c;并且支持MVVM&#xff08;Model-View-ViewModel&#xff09;设计模式。 在WPF中&#xff0c;“行为…

【LeetCode】两数之和、大数相加

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO 1.两数之和 题目&#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一…

React核心思维模型(一)

一、数据和视图分离&#xff0c;数据改变驱动视图更新 <div>Tom</div>如果我们想修改上述div盒子中的Tom为Jerry&#xff0c;应该怎样修改呢 在jquery中我们直接把界面元素抓过来修改 document.getElementsByTagName(div).item(0) Jerry 但在react中&#xf…

DataSophon集成ApacheImpala的过程

注意: 本次安装操作系统环境为Anolis8.9(Centos7和Centos8应该也一样) DataSophon版本为DDP-1.2.1 整合的安装包我放网盘了: 通过网盘分享的文件&#xff1a;impala-4.4.1.tar.gz等2个文件 链接: https://pan.baidu.com/s/18KfkO_BEFa5gVcc16I-Yew?pwdza4k 提取码: za4k 1…

使用 Kibana 将地理空间数据导入 Elasticsearch 以供 ES|QL 使用

作者&#xff1a;来自 Elastic Craig Taverner 如何使用 Kibana 和 csv 采集处理器将地理空间数据采集到 Elasticsearch 中&#xff0c;以便在 Elasticsearch 查询语言 (ES|QL) 中进行搜索。Elasticsearch 具有强大的地理空间搜索功能&#xff0c;现在 ES|QL 也具备这些功能&am…

ffmpeg视频滤镜:定向模糊-dblur

滤镜简述 dblur 官网链接 > https://ffmpeg.org/ffmpeg-filters.html#dblur 有一个模糊滤镜&#xff0c;我试了一下&#xff0c;没有感觉到它的特殊之处, 这里简单介绍一下。 滤镜使用 滤镜的参数 angle <float> ..FV.....T. set angle (from 0 t…