zoukankan      html  css  js  c++  java
  • 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中,这里的是转义符,确保.号能够正确地当做普通字符来匹配。

     
     
     
     
     
     
  • 相关阅读:
    UVALive 7509 Dome and Steles
    HDU 5884 Sort
    Gym 101194H Great Cells
    HDU 5451 Best Solver
    HDU 5883 The Best Path
    HDU 5875 Function
    卡特兰数
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    Spark Scala Flink版本对应关系
  • 原文地址:https://www.cnblogs.com/gmeihe17/p/7081119.html
Copyright © 2011-2022 走看看