需求:批量爬取小程序图片。
解决方案一:大神py脚本,解决各种token\auth\微信限制等自动爬取图片。
解决方案二:小白用fiddler手动浏览,自动下载加载的图片。
话不多说,上教程:
本站用户在线留言:可获取Fiddler安装包!
无脑安装fiddler略,安装微信电脑版略。
打开微信,打开fiddler,点击Tools->Options...
点击HTTPS,如下图所示勾选,(可能会跳出安装证书的提示框,请选择安装证书)
接着点击Rules->Customize Rules...
一直下拉或搜索找到static 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:\Temp\";
//不存在则创建文件夹
if (!System.IO.Directory.Exists(saveDir))
System.IO.Directory.CreateDirectory(saveDir);
//保存响应流
oSession.SaveResponseBody(saveDir+fileName);
//写日志
FiddlerObject.log("[文件保存]:"+fileName)
}
}
}
}
关闭,保存。然后重启fiddler,enjoy~
我们随便找了个图片小程序做测试,可以看到fiddler中有抓到图片包,然后自动把图片保存到d:\Temp\目录下。
注:电脑版微信小程序在这:
上一条:Fiddler是什么,带你走近Fiddler
下一条:Fiddler怎么用HTTP请求报文