使用输入参数

Using Input Parameters in Data Extraction Projects


输入参数可以提供给web抓取项目,并且可以在项目内的所有脚本中使用。

输入参数可用于与项目初始化脚本初始化一个web-scraping项目为一个特定的环境中,例如设置数据库连接测试数据库在测试环境中运行时,并设置连接到生产数据库运行时在生产环境中。

可以在web抓取项目中定义特定的输入参数。所有已定义的参数都可以有一个默认值。

image.png

如果项目有任何定义的输入参数,那么当您从Visual Web Ripper 设计器中运行一个Web抓取项目时,就会出现一个参数进入屏幕。

image.png

如果您从命令行运行一个web抓取项目,您可以提供任意数量的已定义的和新的输入参数。所有的参数都可以用于项目中的脚本。如果不为已定义的参数提供值,则使用默认值。


image.png

此时,您不能为使用内置调度程序运行的项目提供输入参数。

使用输入参数改变目标数据源 Using Input Parameters to Change the Destination Data Source


您可以配置一个项目初始化脚本,以使用输入参数来更改目标数据源。该脚本只会更改所提供的数据库连接属性。例如,如果没有提供用户名,将使用默认的用户名。

在Advanced Options窗口中添加了一个项目初始化脚本。

image.png

下面的脚本确定输入参数是否存在,然后设置相应的数据库连接属性。

image.png

设置FixedValue内容来匹配输入参数Setting FixedValue Content Equal to the Value of an Input Parameter


您可以使用一个简单的内容转换脚本来设置内容元素等于输入参数的值。

using  System;   
using  VisualWebRipper.Internal.SimpleHtmlParser;   
using  VisualWebRipper;   
public   class  Script   
{   
     public   static   string  TransformContent(WrContentTransformationArguments args)   
    {   
         try   
        {               
             return  args.InputParameters[ "par1" ];   
        }   
         catch (Exception exp)   
        {               
            args.WriteDebug(exp.Message);   
             return   "Custom script error" ;   
        }   
    }   
}  

设置FormField内容来匹配输入参数Setting FormField Content Equal to the Value of an Input Parameter

您可以使用一个简单的输入转换脚本来设置一个FormField内容元素,它等于一个输入参数的值。

using  System;   
using  VisualWebRipper.Internal.SimpleHtmlParser;   
using  VisualWebRipper;   
public   class  Script   
{   
     //See help for a definition of WrInputTransformationArguments.   
     public   static   string  TransformInput(WrInputTransformationArguments args)   
    {   
         try   
        {           
             return  args.InputParameters[ "par1" ];   
        }   
         catch (Exception exp)   
        {               
            args.WriteDebug(exp.Message);   
             return   "Custom script error" ;   
        }   
    }   
}  

设置项目开始URL来匹配输入参数Setting the Project Start URL Equal to the Value of an Input Parameter


可以使用一个简单的项目初始化脚本,将项目启动URL设置为一个输入参数的值。

using  System;   
using  mshtml;   
using  VisualWebRipper;   
public   class  Script   
{   
     //See help for a definition of WrProjectInitializeArguments.   
     public   static   bool  InitializeProject(WrProjectInitializeArguments args)   
    {   
         try   
        {   
             if (args.InputParameters.ContainsParameter( "url" ))   
                args.Project.StartUrl = args.InputParameters[ "url" ];   
  
             return   true ;   
        }   
         catch (Exception exp)   
        {   
            args.WriteDebug(exp.Message);   
             return   false ;   
        }   
    }   
}  
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,663评论 25 708
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,974评论 6 342
  • 如果爱,请深爱 多少个春去秋来 多少次花开花谢 被岁月遗忘的 爱都会记得 如果爱,请深爱 多少个潮涨潮落 多少次生...
    小猪绒阅读 138评论 0 1
  • 写在前面 我将在每周对上一周的情况总结。本周情况有点特殊,多说一点。中国大学是不是屌丝文化的温床?登上了简书首页,...
    思遥阅读 243评论 0 1