利用Fiddler2的Custom Rules自動抓取App的TOKEN並記錄到檔案

來源:互聯網
上載者:User

標籤:java   javascrip   今天   asc   ESS   contain   icon   weight   多次   

本文原創鯤之鵬(http://www.site-digger.com)

本文原始連結:http://www.site-digger.com/html/articles/20170810/137.html




背景:某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()方法,插入如下代碼:

view plaincopy to clipboardprint?

  1. // 首先判斷請求網域名稱是否是自己感興趣的,以及URL中是否含有自己感興趣的特徵字串。如果是,則將該請求的URL和QueryString記錄到記錄檔 "c:/fiddler-token.log"中。  

  2. if (oSession.HostnameIs("某網域名稱") && oSession.uriContains("特徵字串")){  

  3.         var filename = "c:/fiddler-token.log";  

  4.         var curDate = new Date();  

  5.         var logContent =  "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "\r\n";  

  6.         var sw : System.IO.StreamWriter;  

  7.         if (System.IO.File.Exists(filename)){  

  8.                 sw = System.IO.File.AppendText(filename);  

  9.                 sw.Write(logContent);  

  10.         }  

  11.         else{  

  12.                 sw = System.IO.File.CreateText(filename);  

  13.                 sw.Write(logContent);  

  14.         }  

  15.         sw.Close();  

  16.         sw.Dispose();  

  17. }  

 

第三步:儲存指令碼並測試(儲存後立即生效,無需重啟Fiddler)。測試結果如所示。


說明:該文章為鯤之鵬(http://www.site-digger.com)原創文章 ,您除了可以發表評論外,還可以轉載到別的網站,但是請保留源地址,謝謝!!(尊重他人勞動,我們共同努力)


利用Fiddler2的Custom Rules自動抓取App的TOKEN並記錄到檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.