Using Input Parameters in Data Extraction Projects
輸入?yún)?shù)可以提供給web抓取項(xiàng)目薄霜,并且可以在項(xiàng)目?jī)?nèi)的所有腳本中使用棋枕。
輸入?yún)?shù)可用于與項(xiàng)目初始化腳本初始化一個(gè)web-scraping項(xiàng)目為一個(gè)特定的環(huán)境中,例如設(shè)置數(shù)據(jù)庫(kù)連接測(cè)試數(shù)據(jù)庫(kù)在測(cè)試環(huán)境中運(yùn)行時(shí),并設(shè)置連接到生產(chǎn)數(shù)據(jù)庫(kù)運(yùn)行時(shí)在生產(chǎn)環(huán)境中单山。
可以在web抓取項(xiàng)目中定義特定的輸入?yún)?shù)揉阎。所有已定義的參數(shù)都可以有一個(gè)默認(rèn)值执俩。
如果項(xiàng)目有任何定義的輸入?yún)?shù),那么當(dāng)您從Visual Web Ripper 設(shè)計(jì)器中運(yùn)行一個(gè)Web抓取項(xiàng)目時(shí)篱竭,就會(huì)出現(xiàn)一個(gè)參數(shù)進(jìn)入屏幕力图。
如果您從命令行運(yùn)行一個(gè)web抓取項(xiàng)目,您可以提供任意數(shù)量的已定義的和新的輸入?yún)?shù)掺逼。所有的參數(shù)都可以用于項(xiàng)目中的腳本吃媒。如果不為已定義的參數(shù)提供值,則使用默認(rèn)值吕喘。
此時(shí)晓折,您不能為使用內(nèi)置調(diào)度程序運(yùn)行的項(xiàng)目提供輸入?yún)?shù)。
使用輸入?yún)?shù)改變目標(biāo)數(shù)據(jù)源 Using Input Parameters to Change the Destination Data Source
您可以配置一個(gè)項(xiàng)目初始化腳本兽泄,以使用輸入?yún)?shù)來(lái)更改目標(biāo)數(shù)據(jù)源漓概。該腳本只會(huì)更改所提供的數(shù)據(jù)庫(kù)連接屬性。例如病梢,如果沒(méi)有提供用戶名胃珍,將使用默認(rèn)的用戶名。
在Advanced Options窗口中添加了一個(gè)項(xiàng)目初始化腳本蜓陌。
下面的腳本確定輸入?yún)?shù)是否存在觅彰,然后設(shè)置相應(yīng)的數(shù)據(jù)庫(kù)連接屬性。
設(shè)置FixedValue內(nèi)容來(lái)匹配輸入?yún)?shù)Setting FixedValue Content Equal to the Value of an Input Parameter
您可以使用一個(gè)簡(jiǎn)單的內(nèi)容轉(zhuǎn)換腳本來(lái)設(shè)置內(nèi)容元素等于輸入?yún)?shù)的值钮热。
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" ;
}
}
}
設(shè)置FormField內(nèi)容來(lái)匹配輸入?yún)?shù)Setting FormField Content Equal to the Value of an Input Parameter
您可以使用一個(gè)簡(jiǎn)單的輸入轉(zhuǎn)換腳本來(lái)設(shè)置一個(gè)FormField內(nèi)容元素填抬,它等于一個(gè)輸入?yún)?shù)的值。
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" ;
}
}
}
設(shè)置項(xiàng)目開始URL來(lái)匹配輸入?yún)?shù)Setting the Project Start URL Equal to the Value of an Input Parameter
可以使用一個(gè)簡(jiǎn)單的項(xiàng)目初始化腳本隧期,將項(xiàng)目啟動(dòng)URL設(shè)置為一個(gè)輸入?yún)?shù)的值飒责。
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 ;
}
}
}