運行一個項目Running a Project
在您設(shè)計了一個數(shù)據(jù)提取項目之后,您需要運行它來提取數(shù)據(jù)。您可以以許多不同的方式運行數(shù)據(jù)提取項目:
- 在Visual Web Ripper中打開項目,并點擊Run project工具欄按鈕。
- 使用Visual Web Ripper 計劃任務(wù)調(diào)度項目。
- 使用RunProject運行項目。exe命令行工具。
- 使用API來加載和運行一個項目。
從項目編輯器中運行一個項目
當(dāng)您在設(shè)計一個數(shù)據(jù)采集項目時,您可以使用Run project工具欄按鈕來從Visual Web Ripper中運行項目。
這是一個簡單的運行和調(diào)試項目的方法,因為它允許您在提取數(shù)據(jù)的同時查看web瀏覽器,它還允許您訪問調(diào)試窗口,在那里您可以查看關(guān)于數(shù)據(jù)提取過程的詳細(xì)信息。
運行項目選項 | Run Project Options |
---|---|
Default data extractor |
1.WebBrowser: web瀏覽器代理使用本地Internet Explorer控件從一個網(wǎng)站中提取數(shù)據(jù)。這個數(shù)據(jù)收集器在可視編輯器中顯示一個頁面,因此通常非常準(zhǔn)確。它加載并執(zhí)行javascript,并處理AJAX。 2.WebCrawler: web爬行器代理非常快,但是它不加載JavaScript,也不處理AJAX。如果一個網(wǎng)頁包含了無效的HTML語法,那么它可能會以不同的方式瀏覽網(wǎng)頁,與它在視覺編輯器中的顯示方式不同。您可以在可視化編輯器中打開web爬蟲模式,以查看web爬蟲收集器如何查看一個網(wǎng)頁。 3.InternetExplorer:Internet Explorer代理與web瀏覽器代理類似,但它使用Internet Explorer的真實實例從一個網(wǎng)站中提取數(shù)據(jù)。 |
View web browser | 在提取數(shù)據(jù)時顯示web瀏覽器,這樣您就可以跟蹤代理如何在網(wǎng)站上導(dǎo)航。提取的數(shù)據(jù)在web瀏覽器中被標(biāo)記。 |
Debugging | 打開調(diào)試窗口,讓您可以訪問調(diào)試窗口。 |
Debug level | 指定在調(diào)試窗口中顯示的詳細(xì)信息。 |
Pause data extraction | 當(dāng)某個條件為真時,暫停處理。 |
Pause | 您可以在任何時候單擊暫停按鈕來暫停處理。暫停之后,您必須單擊Continue按鈕繼續(xù)進行處理。 |
采集內(nèi)容
您可以配置一個數(shù)據(jù)采集項目,通過向模板中添加內(nèi)容元素來從一個頁面中提取內(nèi)容。您可以通過使用其中的一種方法向模板添加內(nèi)容元素:
- 右鍵單擊web瀏覽器中的HTML元素,并從上下文菜單中選擇Add Content。
- 左鍵單擊web瀏覽器中的HTML元素,并單擊元素窗口中的New按鈕。
- 當(dāng)您在web瀏覽器中單擊HTML元素時,按下Shift鍵。
在您添加了類型元素的內(nèi)容元素之后,您可以從選項窗口中選擇捕獲類型。Visual Web Ripper可以從選定的HTML元素中提取任何屬性,如文本、HTML或元素屬性。
微調(diào)內(nèi)容選擇Fine-Tuning a Content Selection
內(nèi)容可能位于單一類型的網(wǎng)頁上的多個位置。例如,您可能有幾個頁面的搜索結(jié)果,其中的內(nèi)容選擇從第一個頁面中提取內(nèi)容,而不是在下面的頁面中。在這種情況下,您需要手動調(diào)整內(nèi)容選擇,以便對搜索結(jié)果中的所有頁面都有效。
內(nèi)容轉(zhuǎn)換Content Transformation
內(nèi)容轉(zhuǎn)換腳本通常與內(nèi)容元素一起使用,以修改提取的數(shù)據(jù)。內(nèi)容轉(zhuǎn)換腳本可以從提取的數(shù)據(jù)中提取較小的片段。例如,一個HTML元素可能包含一個完整的地址。內(nèi)容元素將完整的地址提取到一個數(shù)據(jù)字段中,但是您可以使用內(nèi)容轉(zhuǎn)換從完整的地址提取狀態(tài)或郵政編碼。
導(dǎo)航網(wǎng)站 Navigating a Website
Visual Web Ripper 使用模板瀏覽網(wǎng)站。當(dāng)Visual Web Ripper打開一個模板時,它會通過點擊相關(guān)的鏈接或Web表單按鈕來導(dǎo)航到一個新的網(wǎng)頁。如果模板是一個列表模板,那么Visual Web Ripper就會遍歷列表中的所有鏈接,從而導(dǎo)航到所有的鏈接。
您可以使用以下模板來配置一個數(shù)據(jù)提取項目來導(dǎo)航一個網(wǎng)站:
- Link template: 這是最常用的模板。它點擊一個鏈接,以便導(dǎo)航到一個新的網(wǎng)頁。模板可以是一個列表模板,它可以選擇一個鏈接列表。
- FormSubmit template: 該模板用于提交web表單。
- PageNavigation template: 例如,該模板用于導(dǎo)航搜索結(jié)果中的頁面。模板單擊頁面導(dǎo)航中的所有鏈接,或者在下一頁鏈接中單擊。
- Redirect template: 這個模板很少被使用,但是它會導(dǎo)航到一個直接的URL。
- Root template: 當(dāng)您創(chuàng)建一個新的數(shù)據(jù)提取項目,并且模板導(dǎo)航到開始URL時,這個模板就會自動創(chuàng)建。
您可以通過單擊瀏覽器工具欄按鈕中的導(dǎo)航來打開 Visual Web Ripper Web瀏覽器中的手動導(dǎo)航,但是這個特性只在以下兩種情況下使用。
- 當(dāng)您想要導(dǎo)航并設(shè)置數(shù)據(jù)提取項目的開始URL時,請在瀏覽器工具欄按鈕中使用導(dǎo)航。通常,這是在創(chuàng)建新數(shù)據(jù)提取項目時執(zhí)行的第一個步驟。
- 當(dāng)您想要測試帶有特定URL的模板時,請在瀏覽器工具欄按鈕中使用導(dǎo)航。當(dāng)您打開一個鏈接列表模板時,Visual Web Ripper 將導(dǎo)航到列表中的第一個URL。有時,您可能希望使用不同的URL打開模板。您可以通過打開模板并使用手動導(dǎo)航導(dǎo)航到另一個URL來實現(xiàn)這一點。
正如上面所提到的,當(dāng)你打開一個鏈接模板,它與一個鏈接列表相關(guān)聯(lián)時,Visual Web Ripper 會導(dǎo)航到列表中的第一個鏈接。如果您想要Visual Web Ripper 導(dǎo)航到列表中的另一個鏈接,您可以在打開模板之前點擊Web瀏覽器中的特定鏈接。Visual Web Ripper 導(dǎo)航到列表中選擇的鏈接。確保在web瀏覽器中選擇一個鏈接元素,而不是一個不同的元素類型。
開始URLs Start URLs
一個數(shù)據(jù)提取項目的開始URL指向一個項目在啟動時將導(dǎo)航的網(wǎng)頁。開始URL必須是一個直接的URL,不能包含任何會話信息。例如,你不能登錄一個網(wǎng)站,導(dǎo)航到一個網(wǎng)頁,然后使用這個網(wǎng)頁的URL作為開始的URL。在這個場景中,您必須使用登錄頁面的URL作為開始URL,然后在您的項目中添加模板,以便導(dǎo)航到您想要開始提取數(shù)據(jù)的頁面。
項目的根模板(root template)包含關(guān)于開始URL的信息。當(dāng)打開根模板時,Visual Web Ripper 會導(dǎo)航到開始的URL。當(dāng)您創(chuàng)建一個新的數(shù)據(jù)提取項目時,將自動創(chuàng)建根模板。當(dāng)根模板打開時,您可以使用地址欄輸入開始URL。
如果根模板是打開的,您也可以通過在Visual Web Ripper Web瀏覽器中打開手動導(dǎo)航來導(dǎo)航到開始URL。通過單擊瀏覽器工具欄按鈕中的導(dǎo)航打開手動導(dǎo)航。
多個開始URLs Multiple Start URLs
一個數(shù)據(jù)提取項目可以有多個啟動urls。您可以輸入一個開始urls的靜態(tài)列表,或者輸入來自輸入數(shù)據(jù)源的起始url,例如CSV文件或數(shù)據(jù)庫。
Following Pagination Links 分布鏈接
一個顯示搜索結(jié)果的網(wǎng)站經(jīng)常使用分頁來允許用戶在搜索結(jié)果中前進。
下面的圖片顯示了Google搜索的分頁。
Visual Web Ripper 可以使用pagenavigation導(dǎo)航模板來跟蹤所有的分頁鏈接。pagenavigation導(dǎo)航航模板從不包含任何子內(nèi)容或子模板,但只是簡單地重復(fù)它的父模板,用于每個分頁鏈接。
上面所示的項目配置繼續(xù)處理每個分頁鏈接的PageArea列表模板。
Visual Web Ripper支持四種類型的分頁:
- Next Page navigation 下一頁導(dǎo)航
- Single Link navigation 單鏈接導(dǎo)航
- List of Links navigation 列表鏈接導(dǎo)航
- Dynamic List of Links navigation 動態(tài)列表鏈接導(dǎo)航
下一頁導(dǎo)航是最常見的,當(dāng)網(wǎng)站有一個Next Page | 下一頁
鏈接,它會把你轉(zhuǎn)到導(dǎo)航的下一個頁面時,應(yīng)該使用它。pagenavigation 導(dǎo)航模板應(yīng)該選擇網(wǎng)頁上的下一頁鏈接。下一頁的pagenavigation模板自動地將過濾器應(yīng)用到選擇中,因此選擇XPath通常最后看起來是這樣的://A[.= 'Next >>']
。您不需要知道XPath語法來使用這個特性,但是這樣的XPath確保了一個很好的、健壯的選擇,它可以很好地適應(yīng)頁面上的變化。
單鏈接導(dǎo)航(Single Link navigation)類似于下一頁導(dǎo)航,但是它不應(yīng)用選擇過濾器。盡管很少使用,但是在選擇過濾器自動應(yīng)用到下一頁選擇不合適的場景中,單個鏈接pagenavigation導(dǎo)航模板可以很有用。
列表鏈接導(dǎo)航(List of Links navigation)在沒有下一頁鏈接的地方使用,但是只有一個頁面鏈接的列表。頁面鏈接的鏈接列表必須選擇導(dǎo)航中的每個鏈接,因此應(yīng)該是一個列表模板。
有時一個網(wǎng)站顯示了前十個導(dǎo)航頁面,然后又有一個鏈接到下一個十個導(dǎo)航頁面。在這種情況下,您必須使用兩個分頁導(dǎo)航模板:第一個是鏈接pagenavigation 導(dǎo)航模板的列表,它選擇了前10個導(dǎo)航頁面,第二個是選擇下一頁(Next Page)鏈接的下一頁或單個鏈接pageNavigation導(dǎo)航模板。
在沒有下一頁鏈接的情況下,鏈接導(dǎo)航的動態(tài)列表會被使用,但是只有一個頁面鏈接列表和列表中的頁碼會隨著你在導(dǎo)航中向前移動而動態(tài)變化。Google搜索提供了動態(tài)分頁的一個很好的例子。請注意,Google搜索也有一個下一頁鏈接。在這種情況下,您應(yīng)該使用下一個頁面導(dǎo)航,但是鏈接導(dǎo)航的動態(tài)列表也會起作用。
使用啟動新Web瀏覽器選項 Start New Web Browser
啟動新的web瀏覽器選項通常可以用于加快web瀏覽器模式中的數(shù)據(jù)提取,在處理某些網(wǎng)站的分頁時有時也需要這個選項。例如,你可能有一個搜索結(jié)果列表,上面有詳細(xì)的鏈接和標(biāo)準(zhǔn)的頁面導(dǎo)航,但是每次你點擊一個細(xì)節(jié)鏈接,然后返回到搜索結(jié)果,這個網(wǎng)站會自動移到第1頁,而不是停留在當(dāng)前頁面上。這意味著Visual Web Ripper 將進入一個無限循環(huán)并繼續(xù)處理第1頁。為了避免這個問題,您需要確保Visual Web Ripper 不會離開搜索結(jié)果頁面,而是在一個新的Web瀏覽器中加載細(xì)節(jié)頁面。您可以通過在打開詳細(xì)頁面的鏈接模板上設(shè)置新的web瀏覽器選項來實現(xiàn)這一點。
web爬蟲收集器總是使用一個新的web爬蟲實例來從一個新的網(wǎng)頁中提取數(shù)據(jù),因此新的web瀏覽器選項在web爬蟲模式中沒有影響。有關(guān)更多信息,請參見主題數(shù)據(jù)收集器。
提交web表單 Submitting Web Forms
Visual Web Ripper可以多次提交web表單,以用于任何輸入值的組合。您可以將輸入值指定為一個靜態(tài)的值列表,或者您可以從輸入數(shù)據(jù)源中輸入值,例如數(shù)據(jù)庫或CSV文件。
FormSubmit模板用于提交任何web表單,如登錄表單或搜索表單。FormSubmit模板通常有相關(guān)的FormField內(nèi)容元素。這些內(nèi)容元素選擇表單輸入元素,并指定表單輸入值。
按照以下兩個步驟配置一個數(shù)據(jù)提取項目來提交表單:
- 添加一個表單提交模板,選擇表單提交按鈕。
- 為您想要提供輸入值的每個表單字段添加內(nèi)容元素。
FormField內(nèi)容元素有相應(yīng)的輸出數(shù)據(jù)字段,其中包含輸入值。如果您不想將輸入值寫入數(shù)據(jù)輸出,那么可以重新設(shè)置Save Content選項。
FormSubmit模板通常選擇類型提交的輸入HTML元素。Visual Web Ripper 點擊輸入元素來提交表單。有時,網(wǎng)站使用JavaScript提交表單,在這種情況下,提交HTML元素可能是任何HTML元素。如果網(wǎng)站不使用輸入HTML元素作為提交元素,Visual Web Ripper 可能會識別出被選中的HTML元素作為一個鏈接,你將不得不把模板類型從鏈接更改為FormSubmit。
FormSubmit模板為表單字段輸入值的每個組合提交一個web表單。在設(shè)計一個項目時,您可以在Visual Web Ripper 捕獲窗口中設(shè)置表單字段輸入值。每個輸入值應(yīng)該由一條新行分隔。例如,如果您想為表單提交5個輸入值,那么FormField內(nèi)容元素的捕獲窗口應(yīng)該是這樣的:
當(dāng)您添加一個選擇HTML下拉菜單的FormField元素時,Visual Web Ripper會自動為下拉菜單中的所有值提交表單。如果您選擇FormField選項來迭代所有的列表值,您可以看到捕獲窗口中列出的所有下拉菜單值。如果您想在下拉菜單中只提交幾個值的表單,則需要重置選項迭代所有的列表值,然后從捕獲窗口中刪除多余的條目。
FormField Actions
有些網(wǎng)站有表單字段自動提交web表單。例如,搜索結(jié)果頁面可能有一個下拉框,可以設(shè)置顯示在搜索結(jié)果頁面的數(shù)量,或一個下拉框,允許您控制結(jié)果集的排序順序。一旦你選擇下拉框中的值,web表單自動提交,你無須點擊提交按鈕。
按照以下步驟配置一個項目,在一個下拉框中設(shè)置一個值,然后自動提交web表單。
- 為下拉框添加一個FormField內(nèi)容元素。
- 重置FormField選項,迭代所有的列表值,并在捕獲窗口中輸入所需的下拉值。
- 為FormField元素設(shè)置一個動作。這可以是一個完整的頁面加載操作或JavaScript操作。
- 添加一個FormSubmit模板,并將表單類型設(shè)置為Auto submit。
在表單提交上下載一個文件
有時表單提交會導(dǎo)致文件下載。在這種情況下,當(dāng)單擊表單提交按鈕時將出現(xiàn)一個“Save As”對話框。這個對話框?qū)⒆柚筕isual Web Ripper 正確處理網(wǎng)站。
下面的高級模板選項用于配置一個項目來下載文件,而不是顯示“Save As”對話框。
當(dāng)在表單提交時下載文件時,必須設(shè)置固定的文件擴展Fixed file extension
選項。
提交選項的下載文件Download file on submit
僅由web爬蟲代理和版本2的WebBrowser代理提供支持。在使用版本2的WebBrowser代理時,您必須設(shè)置項目選項來修改web瀏覽器的行為Modify web browser behavior
。
上傳文件 Uploading Files
一些web表單包含文件上傳框,允許用戶將文件上傳到網(wǎng)站。文件上傳框不能被腳本操作所操縱,因此它們需要以不同于其他web表單輸入框的方式處理。
按照以下步驟為您的項目添加一個文件上傳FormField。
- 在web瀏覽器中選擇文件上傳輸入框,并向您的項目添加一個FormField內(nèi)容元素。
- 輸入您想要在捕獲窗口中上傳的文件的路徑。您還可以從輸入數(shù)據(jù)源加載文件路徑。
- 將FormField動作設(shè)置為JavaScript和AJAX。
- 在advanced options選項卡中設(shè)置FormField選項“文件上載”到true。
上傳文件的web表單不能提交到一個新的瀏覽器窗口,因此這樣的web表單將始終在當(dāng)前的瀏覽器窗口中打開。
案例 Web Form Examples
- 提交一個輸入值列表的Web表單
- 級聯(lián)Ajax下拉菜單
- 提交帶有單選按鈕或復(fù)選框列表的Web表單
處理網(wǎng)站登錄 Handling Website Logins
VWR(Visual Web Ripper)可以處理網(wǎng)站的登錄表單,因為它可以處理任何其他的web表單。按照以下三個步驟配置一個數(shù)據(jù)提取項目,以登錄一個網(wǎng)站:
- 添加一個選擇Login按鈕的FormSubmit模板。
- 添加一個FormField內(nèi)容元素,選擇用戶名表單字段。在捕獲窗口中輸入用戶名。
- 添加一個FormField內(nèi)容元素來選擇密碼表單字段。在捕獲窗口中輸入密碼。
基于windows的驗證 Basic Windows Authentication
一些網(wǎng)站使用基本的Windows認(rèn)證,它們將顯示一個Windows登錄框。Internet Explorer不再允許您直接在URL中嵌入身份驗證:
http://username:password@www.domain.com/index.html
VWR允許您在項目選項的Advanced選項卡上設(shè)置基本W(wǎng)indows身份驗證的用戶名和密碼。
您必須設(shè)置項目選項來修改默認(rèn)的web瀏覽器運行Modify default web browser behavior
,以使Windows身份驗證生效。