首页>软件资讯>常见问题

常见问题

Fiddler抓包批量下载小程序图片

发布时间:2022-12-01 16:58:01人气:557

需求:批量爬取小程序图片。


解决方案一:大神py脚本,解决各种token\auth\微信限制等自动爬取图片。


解决方案二:小白用fiddler手动浏览,自动下载加载的图片。


话不多说,上教程:


本站用户在线留言:可获取Fiddler安装包! 


无脑安装fiddler略,安装微信电脑版略。


打开微信,打开fiddler,点击Tools->Options...


Tools工具界面.png


点击HTTPS,如下图所示勾选,(可能会跳出安装证书的提示框,请选择安装证书)


点击HTTPS,勾选项.png


接着点击Rules->Customize Rules...


Rules->Customize Rules..界面.png


一直下拉或搜索找到static function OnDone(oSession: Session) {}这部分代码。


static function OnDone(oSession: Session) {}代码.png


在注释后面粘贴入代码:(没被注释会有高亮,不然全绿)


    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:\Temp\";

                    //不存在则创建文件夹

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

                        System.IO.Directory.CreateDirectory(saveDir);


                    //保存响应流

                    oSession.SaveResponseBody(saveDir+fileName);

                    //写日志

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

                }

            }

        }

    }

关闭,保存。然后重启fiddler,enjoy~


Fiddler抓包批量下载小程序图片.png


Fiddler抓包批量下载小程序图片.png


我们随便找了个图片小程序做测试,可以看到fiddler中有抓到图片包,然后自动把图片保存到d:\Temp\目录下。


注:电脑版微信小程序在这:

Fiddler抓包批量下载小程序图片.png




上一条:Fiddler是什么,带你走近Fiddler

下一条:Fiddler怎么用HTTP请求报文