web_reg_save_param_ex簡介


  • Save Offset

設置關聯的內容偏移量,從第幾位開始進行關聯操作。回到最開始的例子,我們抓取的是You have successfully installed XAMPP on this system!,如果需要獲得successfully installed XAMPP on this system!這個字符串,則不用改變左邊界,只需要設置Save Offset為9即可,代碼為:

web_reg_save_param_ex(

        "ParamName=temp",

        "LB=Congratulations:<br>",

        "RB=</b><p>",

        "Ordinal=1",

        "SaveOffset=9",

        SEARCH_FILTERS,

        "ContentType=text/html",

                    LAST);

  • Save Length

關聯出來的內容所需要保存的長度。在Save Offset的例子中我們寫到如何獲得successfully installed XAMPP on this system!這個字符串,如果我們還希望獲得這個字符串中的successfully installed XAMPP,那么可以再添加Save Length為22,代碼變為:

web_reg_save_param_ex(

        "ParamName=temp",

        "LB=Congratulations:<br>",

        "RB=</b><p>",

        "Ordinal=1",

        "SaveOffset=9",

        "SaveLen=22",

        SEARCH_FILTERS,

        "ContentType=text/html",

LAST);

通過Save Length和Save Offset的設置,我們就可以方便地抓取服務器返回的定長數據的任意一個部分了。
 
  • Scope
 
該項設置關聯查詢的范圍,在LR11中和以前的范圍做了一些調整,應該算是更加強大了,這里Scope提供了4個選項:Body、Headers、Cookies、All。
 

2)Headers/Body/Cookies

  這3個選項都是從請求返回的所有內容進行關聯處理,包括圖片、JavaScript腳本等。區別在於對返回信息的分隔方式。在前面介紹HTTP的時候介紹過HTTP返回的內容其實是由 Header(HTTP信息 )和Body(HTTP內容)組成的,而Cookie又是 Header 中的一部分,在Tree模式下的HTTP View視圖中可以清晰地看到LR如何定義各塊內容。當我們對Phpwind登錄返回做關聯時,不同的Scope帶來的效果如下。
 

strtok()函數的作用是通過某個分隔符來切分內容的。

char temp[100];

char * token;

extern char * strtok(char * string, const char * delimiters );

lr_save_string("sessionid=54321123&action=work","param");

strcpy(temp,lr_eval_string("{param}"));//取出參數,並且賦給變量temp

        token = (char *)strtok(temp,"&");//使用&符號作為分隔符

這個時候token="sessionid=54321123",並且是根據&符號分隔的,所以id的長度可以任意變化,而token 中的sessionid可以通過關聯的時候Save Offset進行處理,或者使用strtok()函數對等號再次進行處理。
 

而在LR11中提供了web_reg_save_param_regexp正則表達式關聯,上面的寫法也可以退休了。打開Add Step添加步驟,選擇web_reg_save_param_regexp函數,打開設置窗口,如圖所示

 

 

在這個函數中關鍵就是在Regular Expression的寫法上,在前面XML參數的lr_xml_find函數中我們提到過正則表達式的寫法,在這里的寫法唯一區別在於需要關聯返回的內容需要用()圓括號標記。例如,這里的read(.*)\.php就是指所有符合read開.php結尾中間的任何內容都關聯保存到參數temp中,這里的\是轉義符,確保.號能夠正確地當做普通字符來匹配。

 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM