數據采集的概念

運行一個項目Running a Project


在您設計了一個數據提取項目之后,您需要運行它來提取數據。您可以以許多不同的方式運行數據提取項目:

  • 在Visual Web Ripper中打開項目,并點擊Run project工具欄按鈕。
  • 使用Visual Web Ripper 計劃任務調度項目。
  • 使用RunProject運行項目。exe命令行工具。
  • 使用API來加載和運行一個項目。

從項目編輯器中運行一個項目

當您在設計一個數據采集項目時,您可以使用Run project工具欄按鈕來從Visual Web Ripper中運行項目。


running project

這是一個簡單的運行和調試項目的方法,因為它允許您在提取數據的同時查看web瀏覽器,它還允許您訪問調試窗口,在那里您可以查看關于數據提取過程的詳細信息。


capture data ui
運行項目選項 Run Project Options
Default data extractor 1.WebBrowser: web瀏覽器代理使用本地Internet Explorer控件從一個網站中提取數據。這個數據收集器在可視編輯器中顯示一個頁面,因此通常非常準確。它加載并執(zhí)行javascript,并處理AJAX。
2.WebCrawler: web爬行器代理非??欤撬患虞dJavaScript,也不處理AJAX。如果一個網頁包含了無效的HTML語法,那么它可能會以不同的方式瀏覽網頁,與它在視覺編輯器中的顯示方式不同。您可以在可視化編輯器中打開web爬蟲模式,以查看web爬蟲收集器如何查看一個網頁。
3.InternetExplorer:Internet Explorer代理與web瀏覽器代理類似,但它使用Internet Explorer的真實實例從一個網站中提取數據。
View web browser 在提取數據時顯示web瀏覽器,這樣您就可以跟蹤代理如何在網站上導航。提取的數據在web瀏覽器中被標記。
Debugging 打開調試窗口,讓您可以訪問調試窗口。
Debug level 指定在調試窗口中顯示的詳細信息。
Pause data extraction 當某個條件為真時,暫停處理。
Pause 您可以在任何時候單擊暫停按鈕來暫停處理。暫停之后,您必須單擊Continue按鈕繼續(xù)進行處理。

采集內容


您可以配置一個數據采集項目,通過向模板中添加內容元素來從一個頁面中提取內容。您可以通過使用其中的一種方法向模板添加內容元素:

  • 右鍵單擊web瀏覽器中的HTML元素,并從上下文菜單中選擇Add Content。
  • 左鍵單擊web瀏覽器中的HTML元素,并單擊元素窗口中的New按鈕。
  • 當您在web瀏覽器中單擊HTML元素時,按下Shift鍵。

在您添加了類型元素的內容元素之后,您可以從選項窗口中選擇捕獲類型。Visual Web Ripper可以從選定的HTML元素中提取任何屬性,如文本、HTML或元素屬性。

capture options

微調內容選擇Fine-Tuning a Content Selection
內容可能位于單一類型的網頁上的多個位置。例如,您可能有幾個頁面的搜索結果,其中的內容選擇從第一個頁面中提取內容,而不是在下面的頁面中。在這種情況下,您需要手動調整內容選擇,以便對搜索結果中的所有頁面都有效。

內容轉換Content Transformation

內容轉換腳本通常與內容元素一起使用,以修改提取的數據。內容轉換腳本可以從提取的數據中提取較小的片段。例如,一個HTML元素可能包含一個完整的地址。內容元素將完整的地址提取到一個數據字段中,但是您可以使用內容轉換從完整的地址提取狀態(tài)或郵政編碼。

導航網站 Navigating a Website


Visual Web Ripper 使用模板瀏覽網站。當Visual Web Ripper打開一個模板時,它會通過點擊相關的鏈接或Web表單按鈕來導航到一個新的網頁。如果模板是一個列表模板,那么Visual Web Ripper就會遍歷列表中的所有鏈接,從而導航到所有的鏈接。

您可以使用以下模板來配置一個數據提取項目來導航一個網站:

  • Link template: 這是最常用的模板。它點擊一個鏈接,以便導航到一個新的網頁。模板可以是一個列表模板,它可以選擇一個鏈接列表。
  • FormSubmit template: 該模板用于提交web表單。
  • PageNavigation template: 例如,該模板用于導航搜索結果中的頁面。模板單擊頁面導航中的所有鏈接,或者在下一頁鏈接中單擊。
  • Redirect template: 這個模板很少被使用,但是它會導航到一個直接的URL。
  • Root template: 當您創(chuàng)建一個新的數據提取項目,并且模板導航到開始URL時,這個模板就會自動創(chuàng)建。

您可以通過單擊瀏覽器工具欄按鈕中的導航來打開 Visual Web Ripper Web瀏覽器中的手動導航,但是這個特性只在以下兩種情況下使用。

  • 當您想要導航并設置數據提取項目的開始URL時,請在瀏覽器工具欄按鈕中使用導航。通常,這是在創(chuàng)建新數據提取項目時執(zhí)行的第一個步驟。
  • 當您想要測試帶有特定URL的模板時,請在瀏覽器工具欄按鈕中使用導航。當您打開一個鏈接列表模板時,Visual Web Ripper 將導航到列表中的第一個URL。有時,您可能希望使用不同的URL打開模板。您可以通過打開模板并使用手動導航導航到另一個URL來實現這一點。

正如上面所提到的,當你打開一個鏈接模板,它與一個鏈接列表相關聯時,Visual Web Ripper 會導航到列表中的第一個鏈接。如果您想要Visual Web Ripper 導航到列表中的另一個鏈接,您可以在打開模板之前點擊Web瀏覽器中的特定鏈接。Visual Web Ripper 導航到列表中選擇的鏈接。確保在web瀏覽器中選擇一個鏈接元素,而不是一個不同的元素類型。

開始URLs Start URLs

一個數據提取項目的開始URL指向一個項目在啟動時將導航的網頁。開始URL必須是一個直接的URL,不能包含任何會話信息。例如,你不能登錄一個網站,導航到一個網頁,然后使用這個網頁的URL作為開始的URL。在這個場景中,您必須使用登錄頁面的URL作為開始URL,然后在您的項目中添加模板,以便導航到您想要開始提取數據的頁面。

項目的根模板(root template)包含關于開始URL的信息。當打開根模板時,Visual Web Ripper 會導航到開始的URL。當您創(chuàng)建一個新的數據提取項目時,將自動創(chuàng)建根模板。當根模板打開時,您可以使用地址欄輸入開始URL。

Start URLs

如果根模板是打開的,您也可以通過在Visual Web Ripper Web瀏覽器中打開手動導航來導航到開始URL。通過單擊瀏覽器工具欄按鈕中的導航打開手動導航。

navigation in browser

多個開始URLs Multiple Start URLs
一個數據提取項目可以有多個啟動urls。您可以輸入一個開始urls的靜態(tài)列表,或者輸入來自輸入數據源的起始url,例如CSV文件或數據庫。


Following Pagination Links 分布鏈接


一個顯示搜索結果的網站經常使用分頁來允許用戶在搜索結果中前進。
下面的圖片顯示了Google搜索的分頁。

google pagination

Visual Web Ripper 可以使用pagenavigation導航模板來跟蹤所有的分頁鏈接。pagenavigation導航航模板從不包含任何子內容或子模板,但只是簡單地重復它的父模板,用于每個分頁鏈接。

Pagination graphy

上面所示的項目配置繼續(xù)處理每個分頁鏈接的PageArea列表模板。

Visual Web Ripper支持四種類型的分頁:

  • Next Page navigation 下一頁導航
  • Single Link navigation 單鏈接導航
  • List of Links navigation 列表鏈接導航
  • Dynamic List of Links navigation 動態(tài)列表鏈接導航

下一頁導航是最常見的,當網站有一個Next Page | 下一頁鏈接,它會把你轉到導航的下一個頁面時,應該使用它。pagenavigation 導航模板應該選擇網頁上的下一頁鏈接。下一頁的pagenavigation模板自動地將過濾器應用到選擇中,因此選擇XPath通常最后看起來是這樣的://A[.= 'Next >>']。您不需要知道XPath語法來使用這個特性,但是這樣的XPath確保了一個很好的、健壯的選擇,它可以很好地適應頁面上的變化。

單鏈接導航(Single Link navigation)類似于下一頁導航,但是它不應用選擇過濾器。盡管很少使用,但是在選擇過濾器自動應用到下一頁選擇不合適的場景中,單個鏈接pagenavigation導航模板可以很有用。

列表鏈接導航(List of Links navigation)在沒有下一頁鏈接的地方使用,但是只有一個頁面鏈接的列表。頁面鏈接的鏈接列表必須選擇導航中的每個鏈接,因此應該是一個列表模板。

有時一個網站顯示了前十個導航頁面,然后又有一個鏈接到下一個十個導航頁面。在這種情況下,您必須使用兩個分頁導航模板:第一個是鏈接pagenavigation 導航模板的列表,它選擇了前10個導航頁面,第二個是選擇下一頁(Next Page)鏈接的下一頁或單個鏈接pageNavigation導航模板。

在沒有下一頁鏈接的情況下,鏈接導航的動態(tài)列表會被使用,但是只有一個頁面鏈接列表和列表中的頁碼會隨著你在導航中向前移動而動態(tài)變化。Google搜索提供了動態(tài)分頁的一個很好的例子。請注意,Google搜索也有一個下一頁鏈接。在這種情況下,您應該使用下一個頁面導航,但是鏈接導航的動態(tài)列表也會起作用。

使用啟動新Web瀏覽器選項 Start New Web Browser

啟動新的web瀏覽器選項通??梢杂糜诩涌靪eb瀏覽器模式中的數據提取,在處理某些網站的分頁時有時也需要這個選項。例如,你可能有一個搜索結果列表,上面有詳細的鏈接和標準的頁面導航,但是每次你點擊一個細節(jié)鏈接,然后返回到搜索結果,這個網站會自動移到第1頁,而不是停留在當前頁面上。這意味著Visual Web Ripper 將進入一個無限循環(huán)并繼續(xù)處理第1頁。為了避免這個問題,您需要確保Visual Web Ripper 不會離開搜索結果頁面,而是在一個新的Web瀏覽器中加載細節(jié)頁面。您可以通過在打開詳細頁面的鏈接模板上設置新的web瀏覽器選項來實現這一點。

web爬蟲收集器總是使用一個新的web爬蟲實例來從一個新的網頁中提取數據,因此新的web瀏覽器選項在web爬蟲模式中沒有影響。有關更多信息,請參見主題數據收集器。


提交web表單 Submitting Web Forms


Visual Web Ripper可以多次提交web表單,以用于任何輸入值的組合。您可以將輸入值指定為一個靜態(tài)的值列表,或者您可以從輸入數據源中輸入值,例如數據庫或CSV文件。

FormSubmit模板用于提交任何web表單,如登錄表單或搜索表單。FormSubmit模板通常有相關的FormField內容元素。這些內容元素選擇表單輸入元素,并指定表單輸入值。

按照以下兩個步驟配置一個數據提取項目來提交表單:

  1. 添加一個表單提交模板,選擇表單提交按鈕。
  2. 為您想要提供輸入值的每個表單字段添加內容元素。
submit forms

FormField內容元素有相應的輸出數據字段,其中包含輸入值。如果您不想將輸入值寫入數據輸出,那么可以重新設置Save Content選項。

FormSubmit模板通常選擇類型提交的輸入HTML元素。Visual Web Ripper 點擊輸入元素來提交表單。有時,網站使用JavaScript提交表單,在這種情況下,提交HTML元素可能是任何HTML元素。如果網站不使用輸入HTML元素作為提交元素,Visual Web Ripper 可能會識別出被選中的HTML元素作為一個鏈接,你將不得不把模板類型從鏈接更改為FormSubmit。

FormSubmit模板為表單字段輸入值的每個組合提交一個web表單。在設計一個項目時,您可以在Visual Web Ripper 捕獲窗口中設置表單字段輸入值。每個輸入值應該由一條新行分隔。例如,如果您想為表單提交5個輸入值,那么FormField內容元素的捕獲窗口應該是這樣的:


capture value

當您添加一個選擇HTML下拉菜單的FormField元素時,Visual Web Ripper會自動為下拉菜單中的所有值提交表單。如果您選擇FormField選項來迭代所有的列表值,您可以看到捕獲窗口中列出的所有下拉菜單值。如果您想在下拉菜單中只提交幾個值的表單,則需要重置選項迭代所有的列表值,然后從捕獲窗口中刪除多余的條目。

FormField Actions

有些網站有表單字段自動提交web表單。例如,搜索結果頁面可能有一個下拉框,可以設置顯示在搜索結果頁面的數量,或一個下拉框,允許您控制結果集的排序順序。一旦你選擇下拉框中的值,web表單自動提交,你無須點擊提交按鈕。

按照以下步驟配置一個項目,在一個下拉框中設置一個值,然后自動提交web表單。

  1. 為下拉框添加一個FormField內容元素。
  2. 重置FormField選項,迭代所有的列表值,并在捕獲窗口中輸入所需的下拉值。
  3. 為FormField元素設置一個動作。這可以是一個完整的頁面加載操作或JavaScript操作。
  4. 添加一個FormSubmit模板,并將表單類型設置為Auto submit。
Form Options

在表單提交上下載一個文件

有時表單提交會導致文件下載。在這種情況下,當單擊表單提交按鈕時將出現一個“Save As”對話框。這個對話框將阻止Visual Web Ripper 正確處理網站。

下面的高級模板選項用于配置一個項目來下載文件,而不是顯示“Save As”對話框。

file download on form submit

當在表單提交時下載文件時,必須設置固定的文件擴展Fixed file extension選項。

提交選項的下載文件Download file on submit僅由web爬蟲代理和版本2的WebBrowser代理提供支持。在使用版本2的WebBrowser代理時,您必須設置項目選項來修改web瀏覽器的行為Modify web browser behavior。

上傳文件 Uploading Files

一些web表單包含文件上傳框,允許用戶將文件上傳到網站。文件上傳框不能被腳本操作所操縱,因此它們需要以不同于其他web表單輸入框的方式處理。

按照以下步驟為您的項目添加一個文件上傳FormField。

  1. 在web瀏覽器中選擇文件上傳輸入框,并向您的項目添加一個FormField內容元素。
  2. 輸入您想要在捕獲窗口中上傳的文件的路徑。您還可以從輸入數據源加載文件路徑。
  3. 將FormField動作設置為JavaScript和AJAX。
  4. 在advanced options選項卡中設置FormField選項“文件上載”到true。

上傳文件的web表單不能提交到一個新的瀏覽器窗口,因此這樣的web表單將始終在當前的瀏覽器窗口中打開。

案例 Web Form Examples

  • 提交一個輸入值列表的Web表單
  • 級聯Ajax下拉菜單
  • 提交帶有單選按鈕或復選框列表的Web表單


處理網站登錄 Handling Website Logins


VWR(Visual Web Ripper)可以處理網站的登錄表單,因為它可以處理任何其他的web表單。按照以下三個步驟配置一個數據提取項目,以登錄一個網站:

  1. 添加一個選擇Login按鈕的FormSubmit模板。
  2. 添加一個FormField內容元素,選擇用戶名表單字段。在捕獲窗口中輸入用戶名。
  3. 添加一個FormField內容元素來選擇密碼表單字段。在捕獲窗口中輸入密碼。
Logins

基于windows的驗證 Basic Windows Authentication
一些網站使用基本的Windows認證,它們將顯示一個Windows登錄框。Internet Explorer不再允許您直接在URL中嵌入身份驗證:

http://username:password@www.domain.com/index.html

VWR允許您在項目選項的Advanced選項卡上設置基本Windows身份驗證的用戶名和密碼。

base windows authentication

您必須設置項目選項來修改默認的web瀏覽器運行Modify default web browser behavior,以使Windows身份驗證生效。






















?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 項目選項 項目選項是適用于整個項目的選項。最常用的項目選項與以下三個方面相關: 開始的urls 連接 代理 您可以...
    游俠兒evil閱讀 923評論 0 0
  • 理解概念 在開始使用Visual Web Ripper之前,您需要理解底層的模板(Template)概念。大多數w...
    游俠兒evil閱讀 805評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • Incremental Web Scraping and Avoiding Duplicate Data 當從諸如...
    游俠兒evil閱讀 2,584評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,316評論 25 708

友情鏈接更多精彩內容