fiddler怎么将APP中的图片批量抓取下来并且保存在指定位置

背景:app上会有一些图片想要下载下来,直接截图可能清晰度不够,可以使用fiddler将app上的图片给下载到电脑本地指定位置

1. 打开fiddler--Rules--Customize Rules,打开Fiddler ScriptEditor,使用ctrl+f搜索function OnDone(oSession: Session)将这个注释打开并且在里面填写代码

static function OnDone(oSession: Session) {
	//检查Content-Type

	if (oSession.ResponseHeaders["Content-Type"]!=null || oSession.ResponseHeaders["content-type"]!=null)

	{

		//避免不规范标头

		var contentType=oSession.ResponseHeaders["Content-Type"];

		if (String.IsNullOrEmpty(contentType) )

			contentType=oSession.ResponseHeaders["content-type"];

		//判定请求是否图片

		if (contentType.Contains("image"))

		{

			//确定文件名(保存用)

			var fileName="";

			var fileIndex =    oSession.RequestHeaders.RequestPath.LastIndexOf ("/");

			if (fileIndex>0)

				fileName =    oSession.RequestHeaders.RequestPath.Substring (fileIndex+1);

			//如果文件名非法(名称含非法字符)

			if(fileName.IndexOf('?')>0 || fileName.IndexOf('&') )

				fileName=String.Empty;

			//输出日志(在Fiddler 主窗口,日志处输出)

			//FiddlerObject.log("Content-Type:"+ contentType +" RequestPath:"+oSession.RequestHeaders.RequestPath);

			//如果文件名为Null,自行创建一个文件名(Guid)

			if (String.IsNullOrEmpty( fileName))

			{

				fileName=Guid.NewGuid().ToString();

				var extName=    contentType.Replace("image/","");

				fileName=fileName+"."+extName;

			}

			//太小的图片不要,比如站位图片(自行调节)

			if (oSession.ResponseBody.Length>100)

			{

				//指定保存位置

				var saveDir="D:\\fiddlerimage\\";

				//不存在则创建文件夹

				if (!System.IO.Directory.Exists(saveDir))

					System.IO.Directory.CreateDirectory(saveDir);

				//保存响应流

				oSession.SaveResponseBody(saveDir+fileName);

				//写日志

				FiddlerObject.log("[文件保存]:"+fileName)

			}

		}

	}

}

2. 配置好以后重启fiddler,就会在本地配置的路径下找到对应的图片

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值