更多>>关于我们

西安鲲之鹏网络信息技术有限公司从2010年开始专注于Web(网站)数据抓取领域。致力于为广大中国客户提供准确、快捷的数据采集相关服务。我们采用分布式系统架构,日采集网页数千万。我们拥有海量稳定高匿HTTP代理IP地址池,可以有效绕过各种反采集策略。

您只需告诉我们您想抓取的网站是什么,您感兴趣的字段有哪些,你需要的数据是哪种格式,我们将为您做所有的工作,最后把数据(或程序)交付给你。

数据的格式可以是CSV、JSON、XML、ACCESS、SQLITE、MSSQL、MYSQL等等。

更多>>官方微博

当前位置: 首页 > 技术文章 >
利用Fiddler2的Custom Rules自动抓取App的TOKEN并记录到文件
发布时间:2017-08-10 来源:未知 浏览:
背景:某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 + "\r\n";
        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)。测试结果如下图所示。
  •  

 

特别说明:该文章为鲲鹏数据原创文章 ,您除了可以发表评论外,还可以转载到别的网站,但是请保留源地址,谢谢!!(尊重他人劳动,我们共同努力)
☹ Disqus被Qiang了,之前的评论内容都没了。现在改用国产的友言。如果您有爬虫相关技术方面的问题,欢迎发到我们的问答平台:http://spider.site-digger.com/
QQ在线客服
欢迎咨询,点击这里给我发送消息。
欢迎咨询,点击这里给我发送消息。