一站式网站建设专家

十五年定制化网站建设经验.我们只做有价值的网站

互联网经验

15+

服务客户

2600+

专业团队

30+

利用Fiddler2的Custom Rules自动抓取App的TOKEN并记录到

发布时间:2018-03-08 13:48 发布作者:admin 阅读:79
布景:某App的token有时效性,大要生命周期只有一小时。是以爬虫中不克不及利用一个固定的token往抓数据,必需要按时获得新的token值。但token的发生进程复杂难以直接实现。
鲲之鹏的手艺职员颠末研究,最后采取了“曲线救国”的方式,经由过程法式摹拟操纵App(启动),按时发生新的token,然后操纵Fiddler2捕捉这个token并记实到指定文件中(爬虫按时读取这个文件获得新的token)。
用Fiddler2捕捉App的数据包这个方式在我们之前的文章里已屡次提到,若是你还不熟习,可以看看这里http://www.site-digger.com/html/articles/20170116/134.html。今天我们重点讲的是若何让Fiddler2主动将捕捉到的特定参数记实到指定文件中往。
这要回功于Fiddler2的Custom Rules功能,我们可以在Custom Rules中添加剧本(JavaScript)来实现自界说的功能。官网示例文档:http://docs.telerik.com/fiddler/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse。
具体操纵步调以下:
第一步:启动Fiddler ScriptEditor。"菜单栏Rules -> Customize Rules...."以下图所示:
 
第二步:找到OnBeforeRequest()方式,插进以下代码:

// 起首判定要求域名是不是是本身感乐趣的,和URL中是不是含有本身感乐趣的特点字符串。若是是,则将该要求的URL和QueryString记实到日记文件 "c:/fiddler-token.log"中。
if (oSession.HostnameIs("某域名") && oSession.uriContains("特点字符串")){
        var filename = "c:/fiddler-token.log";
        var curDate = new Date();
        var logContent =  "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "
";
        var sw : System.IO.StreamWriter;
        if (System.IO.File.Exists(filename)){
                sw = System.IO.File.AppendText(filename);
                sw.Write(logContent);
        }
        else{
                sw = System.IO.File.CreateText(filename);
                sw.Write(logContent);
        }
        sw.Close();
        sw.Dispose();
}
 
第三步:保留剧本并测试(保留后当即生效,无需重启Fiddler)。测试成果以下图所示。
  •  

 

相关资讯