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

     
     
     
     
     
     
  • 相关阅读:
    关于java中的继承
    jdk?jre?
    spring AOP的两种配置
    ng-repeat如何限制循环次数
    AngularJS filter:search 是如何匹配的 ng-repeat filter:search ,filter:{$:search},只取repeat的item的value 不含label
    Anjular的ng-repeat
    SpringBoot扫描不到类,注入失败A component required a bean of type 'XXService' that could...
    React路由安装使用和多种方式传参
    Vue详细介绍模板语法和过滤器的使用!
    Vue定义组件和生命周期函数及实例演示!
  • 原文地址:https://www.cnblogs.com/gmeihe17/p/7081119.html
Copyright © 2020-2023  润新知