今天利用fiddler抓包网站数据的存储到txt文件
首先打开fiddler工具,点击规则=>自定义规则,打开一个文件之后,找到OnBeforeResponse 方法
加入几行代码
if (oSession.fullUrl.Contains("这里填你需要过滤的域名")) {
try{
var responseBytes = oSession.responseBodyBytes;
var responseString = System.Text.Encoding.UTF8.GetString(responseBytes);
var filePath = "存储的文件.txt";
System.IO.File.WriteAllText(filePath, responseString, System.Text.Encoding.UTF8);
}catch(err){
var err;
}
}
打开采集数据文件一看,发现乱码了
网上说的点击decode,试了也是不行,后来发现这个响应信息,是zstd格式,网上查了一下,大概意思就是,为了节约网络请求之间的响应时间,将响应数据进行了一个压缩,浏览器识别是这种请求,会自行进行解压,但是目前fiddler是不支持的,然后网上找了好久,发现了一个解决方案,那就是加一行代码
if(oSession.RequestHeaders.AllValues("Accept-Encoding") == "gzip, deflate, br, zstd"){//这里可能要根据你自己的情况过滤
oSession.RequestHeaders.Remove("Accept-Encoding");
//oSession.RequestHeaders.Add("Accept-Encoding", "gzip");
}
找到 OnBeforeRequest方法,在最后面,加上此段代码,然后就可以了,希望能对你有帮助。