【原文链接】爬虫——Fiddler如何将抓到的每个包(会话)自动到保存到不同的txt文件中
(1)打开Fiddler后,点击【规则】-【自定义规则】
(2)此时会打开脚本文件窗口,如下所示
(3)然后按Ctrl+F搜索 OnBeforeResponse 方法
(4)然后首先在此方法前增加一个生成时间戳字符串的方法,用于后面保存文件的文件名
static function format(dat){
//获取年月日,时间
var year = dat.getFullYear();
var mon = (dat.getMonth()+1) < 10 ? "0"+(dat.getMonth()+1) : dat.getMonth()+1;
var day = (dat.getDay() +1) < 10 ? "0"+(dat.getDay()+1) : dat.getDay()+1;
var hour = dat.getHours() < 10 ? "0"+(dat.getHours()) : dat.getHours();
var min = dat.getMinutes() < 10 ? "0"+(dat.getMinutes()) : dat.getMinutes();
var seon = dat.getSeconds() < 10 ? "0"+(dat.getSeconds()) : dat.getSeconds();
var milisec= dat.getMilliseconds() <10 ? "0"+(dat.getMilliseconds()) : dat.getMilliseconds()
var newDate = year + mon + day +"_"+ hour + min + seon+"_"+milisec;
return newDate;
}
如下图所示
(5)然后在OnBeforeResponse方法中增加如下一段代码,这里 www.baidu.com 用于过滤要保存的网址的包,保存文件的地方要指定目录以及生成的时间戳组装而成的txt文件名
if (oSession.fullUrl.Contains("www.baidu.com")) {
try{
var now = new Date();
//var ts = now.getTime();
var timestamp = format(now)
oSession.SaveSession("G:/test/"+timestamp+".txt",false);
}catch(err){
var err;
}
}
如下图所示,比如这里就保存 www.baidu.conm 的包
(6)然后保存,并将fiddler重启
(7)然后在浏览器请求 https://www.baidu.com/ 网站
(8)此时可以看到fiddler抓到了许多包,并且 G:/test/ 目录中保存了一些txt文件
(9)找一个文件打开,可以看到这里面请求数据和响应数据均保存在文件中
(10)至此就做到了将fiddler中抓的包自动地保存到txt文件中了