爬虫----Fiddler如何将抓到的每个包(会话)自动到保存到不同的txt文件中
作者:redrose2100   类别:    日期:2023-03-13 02:34:04    阅读:1176 次   消耗积分:0 分

【原文链接】爬虫——Fiddler如何将抓到的每个包(会话)自动到保存到不同的txt文件中

(1)打开Fiddler后,点击【规则】-【自定义规则】

(2)此时会打开脚本文件窗口,如下所示

(3)然后按Ctrl+F搜索 OnBeforeResponse 方法

(4)然后首先在此方法前增加一个生成时间戳字符串的方法,用于后面保存文件的文件名

  1. static function format(dat){
  2. //获取年月日,时间
  3. var year = dat.getFullYear();
  4. var mon = (dat.getMonth()+1) < 10 ? "0"+(dat.getMonth()+1) : dat.getMonth()+1;
  5. var day = (dat.getDay() +1) < 10 ? "0"+(dat.getDay()+1) : dat.getDay()+1;
  6. var hour = dat.getHours() < 10 ? "0"+(dat.getHours()) : dat.getHours();
  7. var min = dat.getMinutes() < 10 ? "0"+(dat.getMinutes()) : dat.getMinutes();
  8. var seon = dat.getSeconds() < 10 ? "0"+(dat.getSeconds()) : dat.getSeconds();
  9. var milisec= dat.getMilliseconds() <10 ? "0"+(dat.getMilliseconds()) : dat.getMilliseconds()
  10. var newDate = year + mon + day +"_"+ hour + min + seon+"_"+milisec;
  11. return newDate;
  12. }

如下图所示

(5)然后在OnBeforeResponse方法中增加如下一段代码,这里 www.baidu.com 用于过滤要保存的网址的包,保存文件的地方要指定目录以及生成的时间戳组装而成的txt文件名

  1. if (oSession.fullUrl.Contains("www.baidu.com")) {
  2. try{
  3. var now = new Date();
  4. //var ts = now.getTime();
  5. var timestamp = format(now)
  6. oSession.SaveSession("G:/test/"+timestamp+".txt",false);
  7. }catch(err){
  8. var err;
  9. }
  10. }

如下图所示,比如这里就保存 www.baidu.conm 的包

(6)然后保存,并将fiddler重启

(7)然后在浏览器请求 https://www.baidu.com/ 网站

(8)此时可以看到fiddler抓到了许多包,并且 G:/test/ 目录中保存了一些txt文件

(9)找一个文件打开,可以看到这里面请求数据和响应数据均保存在文件中

(10)至此就做到了将fiddler中抓的包自动地保存到txt文件中了

始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/557
个人成就
  • 2022年 : 371 篇 
  • 2023年 : 211 篇 
  • 2024年 : 31 篇 
  • 2025年 : 0 篇 
  • 博客总数: 613 
  • 阅读总量: 640174 
测试开发技术全栈公众号
DevOps技术交流微信群