爬虫----Fiddler如何将抓到的每个包(会话)自动到保存到不同的txt文件中

【原文链接】爬虫----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文件中了

猜你喜欢

转载自blog.csdn.net/redrose2100/article/details/129484079