數據采集項目

項目選項


項目選項是適用于整個項目的選項。最常用的項目選項與以下三個方面相關:

  • 開始的urls
  • 連接
  • 代理

您可以通過單擊project options工具欄按鈕打開項目選項屏幕。


Project Options




開始URLs選項 descriptions
Include start URLs in data output 在數據輸出中包含開始的url。
Wait for partial load only 如果交互超時已經完成,頁面加載就會被認為是完整的。當一個網頁需要很長時間加載一個外部資源時,這個選項就可以使用了。
Single start URL 用于設計的URL是惟一使用的開始URL。
List of start URLs 靜態url的列表被用作起始url。
Feed URLs from input data source 啟動urls是從輸入數據源讀取的,比如數據庫表或CSV文件。

特殊的URL參數開始
添加URL參數 ??Post 指定應該貼在網站上的數據。
添加URL參數 ??Headers 以指定應該發送到網站的附加頭信息。

注意: Post參數必須在頭參數之前出現。每個參數是可選的。

例子:
本例中的URL將向站點post par2=val2&par3=val3,而 par1=val1 只是一個普通的查詢參數。

http://www.sequentum.com?par1=val1??post=par2=val2&par3=val3??headers=Content-Type: application/x-www-form-urlencoded

代理選項 Description
Use proxy servers 該項目將循環使用代理服務器列表,并在檢索web頁面時使用代理服務器。代理服務器可以用來將你的IP地址隱藏在目標網站上。
Switch proxy after this number of page loads 在這個頁面加載之后,Visual Web Ripper 將會切換到下一個代理。您必須配置多個代理,以使Visual Web Ripper 能夠切換代理。

瀏覽器選項 這些選項只適用于WebBrowser代理。當使用網絡爬蟲或internet explorer代理時,這些選項沒有任何效果。
Display images 下載并在處理瀏覽器中顯示所有的圖像。圖像內容仍然被下載,即使這個選項被關閉了。不下載和顯示所有圖像會增加數據提取速度。有些網站在沒有圖片的情況下可能無法正常工作。
Run ActiveX & Flash 在處理瀏覽器中下載并運行所有的Flash和ActiveX對象。不下載和顯示所有的Flash和ActiveX對象會增快數據的提取速度。有些網站在沒有運行ActiveX對象的情況下可能無法正常工作。
Ignore cache 總是將緩存的內容與實時內容進行比較。如果關閉“忽略緩存”和“顯示圖像”,那么已經在緩存中的圖像仍然會顯示出來。
Execute scripts 執行Javascript。沒有執行腳本會增加數據提取速度,但是很多網站在這個選項被關閉的情況下無法正常工作。
Load frames 下載框架與框架集
Ignore certificate errors 允許Visual Web Ripper用無效的SSL證書加載網站。
Pass authentication 自動為web瀏覽器提供身份驗證,而不是打開一個對話框。為了使web瀏覽器代理身份驗證能夠工作,這個選項是必需的。

JavaScript選項 Description
Inject standard JavaScript 頁面加載前的覆蓋會將標準的Visual Web Ripper的javascript注入到一個頁面中,以便更好的頁面處理。
Custom JavaScript overrides 用于覆蓋的javascript的自定義列表。
雜項設置 Description
Default data collector 用于數據采集的默認數據收集器。
Web crawler worker threads 在使用web爬蟲采集器時,用于檢索和處理數據的并發線程數量。大量的工作線程可能會在較慢的Internet連接上導致頁面加載超時。
Log level 日志級別越高,記錄的信息就越多。日志文件位于[My Document]\Visual Web Ripper\Log
Web crawler cookie 一個用于web爬蟲采集器的初始cookie。
Get current browser cookie 檢索當前在web瀏覽器中顯示的活動cookie。
高級選項 Advanced Options
Inject JavaScript into all frames 將JavaScript注入到所有frames中。
Refresh after page load 在瀏覽新網頁后,完全刷新網頁瀏覽器的網頁。
Delay after page load (milliseconds) 在導航到第一個頁面后等待指定的毫秒數。
Wait for page load during AJAX 在執行AJAX操作時等待頁面完全加載。
Reduce memory delay 在嘗試減少瀏覽器內存后的幾秒鐘內延遲。延遲的時間越長,減少內存的機會就越大。
Remove Flash 在處理網頁之前,嘗試從網頁中刪除Flash對象。
Load frames 在網頁上加載所有的frames和iframes(只在瀏覽器模式下)。
Hide selection styles 隱藏Visual Web Ripper在瀏覽器中的選擇樣式。
Multi-threaded downloads 在不同的線程中下載文件和圖像(僅使用WebBrowser模式)。
Ignore page load error codes 加載網頁時,忽略錯誤碼。
Save duplicate reference data 將引用數據保存到磁盤上,這樣Visual Web Ripper就可以檢查項目運行之間的重復數據。
Remove duplicate reference data 刪除用于重復檢查的所有舊引用數據。這將導致在項目運行的下一次時提取完整的數據集。
Data row cache 在將提取的數據寫入磁盤之前,緩存這些輸入數據行并在內存中啟動urls。值為0意味著所有數據都緩存在內存中。
Output table name 這個模板生成的輸出表的名稱(如果有的話)。如果該屬性為空,則使用模板名。
Initialization script 在項目開始之前運行的自定義腳本。
Partial page load 如果交互超時已經過去,頁面加載就會被認為是完整的。當一個網頁需要很長時間加載一個外部資源時,這個選項就可以使用了。
Redirect on meta refresh 當發現一個meta刷新標記時,web瀏覽器將重定向。
Link transformation 轉換開始URL(s)的腳本。
Always use default proxy 一個用于web爬蟲采集器的初始cookie。
Load default cookie 在web爬蟲模式中加載每個開始URL的默認cookie。
Allow unsafe header parsing 支持返回不正確響應頭的網站。
Close all dialogs Visual Web Ripper將嘗試在運行時阻制所有的網站對話框,但是可能會在一些特殊的對話框中失敗。這個選項將一個Windows鉤子注入到所有對話框中,并在對話框中自動按下指定的按鈕。模板選項關閉對話按鈕指定將按下的按鈕列表。默認的按鈕是帶有文本為Ok和Yes。指定的文本不是大小寫敏感的。
XPath functions 可以在選擇xpath中使用的自定義函數列表。

模板樣式


Visual Web Ripper有許多不同類型的模板。大多數模板類型在打開模板時執行操作,比如導航到新頁面或提交表單。PageArea模板是不同的,因為它們在當前的網頁中定義了一個區域,但是不執行操作。選擇模板也不執行任何操作。相反,它們會從現有的列表模板中添加或刪除選定的元素。

設計模板最困難的部分是為給定的場景選擇正確的模板選項。例如,如果您正在從一個AJAX站點提取數據,您可能需要使用一些與AJAX操作相關的選項,以確保Visual Web Ripper能夠正確地導航網站。

一些模板選項可以用于所有模板類型,但是其他模板類型只適用于特定的模板類型。

下面的子主題描述了Visual Web Ripper所支持的每種類型的模板。

頁面區域模板(PageArea Templates)


在幾乎所有的Visual Web Ripper 項目中都使用了PageArea模板。它們不執行動作,而是在網頁中定義一個區域。在打開PageArea模板時,選中的區域會變成淡綠色,只有在頁面區域內才可以選擇元素。

一個PageArea模板通常用來定義一個元素列表。例如,如果你在旅游網站上搜索酒店,搜索結果會包含酒店列表。每一家酒店都是搜索結果中的一項,每一家酒店都有一些特定的屬性,比如名字、描述和價格。可以使用PageArea模板來定義搜索結果中的一個條目的區域,并且可以設置列表選項來遍歷所有條目。


Lists Area

一旦打開了PageArea模板,就可以將內容元素添加到模板中。內容元素只能從定義的頁面區域中提取內容。如果PageArea模板是一個列表模板,那么內容元素將自動應用到列表中的所有頁面區域。

image.png

所有列表模板都生成一個新的輸出數據表,因此上面的示例的數據輸出將是一個包含數據行的數據表,其中包含提取的內容“Price/night”。

繼續上面的示例,您可能想要導航到酒店的詳細信息頁面,以提取關于上市酒店的詳細信息。這可以通過在導航到酒店詳細信息頁面的PageArea模板中添加一個鏈接子模板來實現。同樣,如果PageArea模板是一個列表模板,那么只需要定義一個單獨的細節鏈接,而 Visual Web Ripper將會自動跟蹤列表中的每個酒店的詳細鏈接。


image.png

PageArea選項(PageArea Options)

創建PageArea模板時最常用的選項是與列表模板相關的列表選項和選項。做一個完美的列表選擇是很困難的,所以請閱讀創建列表以獲取更多信息。
以下的選項可用于PageArea模板:

  • List options 列表選項
  • Misc template options 雜項模板選項
  • Xpath options Xpath選項
  • Filter options 過濾選項
  • Condition options 條件選項
  • Duplicate data options 重復數據選項

鏈接模板 Links Template


鏈接模板是最常用的模板。它被用來點擊鏈接并在一個網站上導航。當打開一個鏈接模板時,Visual Web Ripper會點擊一個鏈接,然后導航到一個新的網頁。如果模板是一個列表模板,那么Visual Web Ripper就會遍歷列表中的所有鏈接,從而導航到所有的鏈接。

鏈接模板通常是一個PageArea列表模板的子模板。例如,如果一個PageArea模板迭代一個搜索結果列表,那么可以使用一個鏈接模板導航到每個搜索結果的細節頁面。在這種情況下,鏈接模板不是一個列表模板。然而,由于PageArea模板是一個列表模板,所以Visual Web Ripper 仍然可以導航所有的鏈接。

鏈接選項(Link Options)

在創建鏈接模板時,操作選項是最重要的一組選項。兩個主要的選擇是:

  • Full page load
  • AJAX or JavaScript

當點擊選擇的鏈接導航到一個新頁面時,會使用完整的頁面加載選項。當單擊鏈接時,應該使用AJAX或JavaScript選項,而不是導航到新頁面,而是動態地在當前頁面上更改內容。


完整頁面加載選項 Full page load options
Start new web browser 當Visual Web Ripper在WebBrowser模式下運行時,一個單一的瀏覽器實例被用來瀏覽網站。如果你正在遍歷一長串鏈接,Visual Web Ripper會點擊打開一個新網頁的鏈接,從新網頁中提取數據,然后再回到鏈接列表中,以繼續下一個鏈接。

這可能是一個緩慢的過程,因為Visual Web Ripper需要為列表中的每個鏈接導航兩個網頁:首先它導航鏈接,然后它導航到鏈接列表。

如果你手動導航鏈接列表,你可能會在一個新窗口或一個新的瀏覽器標簽頁打開每個鏈接,以避免每次都回到鏈接列表。如果使用新的Web瀏覽器選項,Visual Web Ripper也可以做同樣的工作。
AJAX before full page load 當導航到一個新網頁時,導航應該立即開始。Visual Web Ripper不需要等待導航開始,而是假設導航失敗了,如果它在幾秒內沒有啟動。有時網站會執行一個JavaScript來顯示“請等待……””消息,這樣的JavaScript可能需要花費幾秒鐘的時間來執行,特別是如果它激活了AJAX調用。在這種情況下,您可以在完全頁面加載選項之前使用AJAX,以確保Visual Web Ripper不會報告頁面加載失敗。
Data collector Visual Web Ripper可以在WebBrowser或web爬蟲模式中提取數據。web爬蟲模式要快得多,但在所有網頁上都不適用,因為它忽略了JavaScript和所有動態內容。

網站通常只在一些網頁上使用動態內容。例如,一個網站可能會在搜索結果頁面上使用JavaScript進行頁面導航,但是一旦你點擊了每個搜索結果的細節鏈接,JavaScript就不再使用了。在這種情況下,您可以在單擊詳細鏈接時切換到web爬蟲模式,從而顯著提高數據提取項目的性能。
請參閱web爬蟲模式以獲得更多關于在web爬蟲模式中提取數據的信息。
Link transformation 鏈接轉換用于在 Visual Web Ripper 打開URL之前轉換鏈接URL。當鏈接調用一個JavaScript然后打開新網頁時,這通常是有用的。由于該鏈接調用了JavaScript,因此無法使用web爬蟲模式,但通??梢哉业届o態URL,并且可以使用鏈接轉換將JavaScript調用轉換為靜態URL。這允許你使用web爬蟲模式打開網頁。

例如,一個鏈接可以激活一個看起來像這樣的JavaScript:
openNewWebPage('/products/category/products.aspx?id=3456')
您可以使用鏈接轉換將上面的JavaScript轉換為以下靜態URL:
/products/category/products.aspx?id=3456
See [Transformation Scripts]for more information about transformation scripts.

選擇“Full Page load”選項提供了以下選項:

完整頁面加載選項 Full page load options
Start new web browser 當Visual Web Ripper在WebBrowser模式下運行時,一個單一的瀏覽器實例被用來瀏覽網站。如果你正在遍歷一長串鏈接,Visual Web Ripper會點擊打開一個新網頁的鏈接,從新網頁中提取數據,然后再回到鏈接列表中,以繼續下一個鏈接。

這可能是一個緩慢的過程,因為Visual Web Ripper需要為列表中的每個鏈接導航兩個網頁:首先它導航鏈接,然后它導航到鏈接列表。

如果你手動導航鏈接列表,你可能會在一個新窗口或一個新的瀏覽器標簽頁打開每個鏈接,以避免每次都回到鏈接列表。如果使用新的Web瀏覽器選項,Visual Web Ripper也可以做同樣的工作。
AJAX before full page load 當導航到一個新網頁時,導航應該立即開始。Visual Web Ripper不需要等待導航開始,而是假設導航失敗了,如果它在幾秒內沒有啟動。有時網站會執行一個JavaScript來顯示“請等待……””消息,這樣的JavaScript可能需要花費幾秒鐘的時間來執行,特別是如果它激活了AJAX調用。在這種情況下,您可以在完全頁面加載選項之前使用AJAX,以確保Visual Web Ripper不會報告頁面加載失敗。
Data collector Visual Web Ripper可以在WebBrowser或web爬蟲模式中提取數據。web爬蟲模式要快得多,但在所有網頁上都不適用,因為它忽略了JavaScript和所有動態內容。

網站通常只在一些網頁上使用動態內容。例如,一個網站可能會在搜索結果頁面上使用JavaScript進行頁面導航,但是一旦你點擊了每個搜索結果的細節鏈接,JavaScript就不再使用了。在這種情況下,您可以在單擊詳細鏈接時切換到web爬蟲模式,從而顯著提高數據提取項目的性能。
請參閱web爬蟲模式以獲得更多關于在web爬蟲模式中提取數據的信息。
Link transformation 鏈接轉換用于在 Visual Web Ripper 打開URL之前轉換鏈接URL。當鏈接調用一個JavaScript然后打開新網頁時,這通常是有用的。由于該鏈接調用了JavaScript,因此無法使用web爬蟲模式,但通常可以找到靜態URL,并且可以使用鏈接轉換將JavaScript調用轉換為靜態URL。這允許你使用web爬蟲模式打開網頁。

例如,一個鏈接可以激活一個看起來像這樣的JavaScript:
openNewWebPage('/products/category/products.aspx?id=3456')
您可以使用鏈接轉換將上面的JavaScript轉換為以下靜態URL:
/products/category/products.aspx?id=3456
See [Transformation Scripts]for more information about transformation scripts.

下面的選項也可以用于鏈接模板:

  • Advanced action options
  • List options
  • Misc template options
  • XPath options
  • Filter options
  • Condition options
  • Duplicate data options

LinkArea模板


LinkArea模板類型與標準鏈接模板非常相似,但是它會導航到頁面選擇區域的所有鏈接,而不是一個鏈接。

許多新手用戶使用LinkArea模板來瀏覽一個鏈接列表,因為很容易選擇一個區域,并讓Visual Web Ripper解決剩下的問題。然而,這很少是一個好主意,因為很難控制哪些鏈接是導航的。如果您想要瀏覽一個鏈接列表,您應該幾乎總是使用一個標準鏈接模板,并將其作為一個列表模板。這使您可以更大程度地控制哪些鏈接實際上是被選中的。在少見的情況下,選擇list是不切實際的,您可以使用LinkArea模板。

LinkArea Options
LinkArea模板使用與鏈接模板相同的選項,因此請查看鏈接選項以獲得更多信息。

鏈接區域選項 Link Area Options
Link start index LinkArea模板選擇一個鏈接列表。該選項指定第一個鏈接的索引。0的值意味著可視化的Web開膛手將從第一個鏈接開始。
Link count 該選項指定要導航的鏈接的數量。0的值意味著Visual Web Ripper將從開始索引中導航所有的鏈接。

LinkArea模板有兩個獨特的選擇:

鏈接區域選項 Link Area Options
Link start index LinkArea模板選擇一個鏈接列表。該選項指定第一個鏈接的索引。0的值意味著可視化的Web開膛手將從第一個鏈接開始。
Link count 該選項指定要導航的鏈接的數量。0的值意味著Visual Web Ripper將從開始索引中導航所有的鏈接。

The following groups of options can also be used with LinkArea templates:

  • Advanced action options
  • Misc template options
  • Xpath options
  • Filter options
  • Condition options
  • Duplicate data options

FormSubmit 模板


一個FormSubmit模板提交一個web表單來導航到一個新頁面。FormField內容元素可以與FormSubmit模板關聯,以指定輸入值。

FormSubmit模板可用于提交任何web表單,如登錄或搜索表單。可以將多個輸入值提供給表單,然后 Visual Web Ripper提交所有這些輸入值的組合的表單。

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

FormSubmit模板通常有相關的FormField內容元素。這些內容元素選擇表單輸入元素,并指定表單輸入值。

FormSubmit

FormSubmit Options

Visual Web Ripper可以以三種方式提交一種形式:

  • Submit button
  • Auto submit
  • Direct URL

提交表單的標準方式是使用提交按鈕。當模板打開時,FormSubmit模板選擇并單擊submit按鈕。

有時一個網站在下拉菜單中選擇一個值時自動提交表單。在這種情況下,應該將FormSubmit模板設置為Auto submit。自動提交表單提交模板不需要選擇HTML元素,模板也不執行任何操作。模板簡單地用作子模板和子內容元素的容器。如果您使用的是Auto submit FormSubmit模板,那么至少有一個相關的FormField內容元素必須執行一個操作。否則,在打開FormSubmit模板時不會發生任何動作。請參閱FormField內容以獲得更多信息。

有時,表單可以通過簡單地導航一個靜態URL并將表單輸入值作為URL參數來提交。如果您選擇了直接URL選項,則必須輸入完整的URL,其中包括帶有示例值的所有參數。當Visual Web Ripper 提交表單時,它會自動地將樣本值與FormField內容元素的實際輸入值交換。FormField內容元素的名稱必須與直接URL中的參數名稱匹配。雖然很少使用,但是直接URL選項對于提高數據提取性能或者提交表單是非常有用的。

請參閱提交Web表單以獲得關于在表單提交上下載文件的更多信息。

The following groups of options can also be used with FormSubmit templates:

  • Misc template options
  • XPath options
  • Filter options
  • Condition options
  • Duplicate data options

Web Form Examples

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

PageNavigation模板


分頁導航模板用于在頁面導航中遍歷所有頁面。分頁導航模板不能包含內容元素或模板,但只需打開頁面導航的新頁面,就可以打開父模板。

下面的例子展示了一個PageArea列表模板的項目結構。對于列表中的每個頁面區域,它提取一個內容元素,然后移動到一個細節頁面,并提取兩個額外的內容元素。整個PageArea列表模板在頁面導航中重復出現。

PageNavigation

PageNavigation Options
頁面導航有四種類型:

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

下一頁導航是最常用的導航類型。當頁面上的頁面導航有一個“下一頁”鏈接時,它就會被使用,這個鏈接會把你帶到導航的下一個頁面。pagenavi領航模板應該選擇網頁上的“下一頁”鏈接。下一個頁面的pagenavigaton 導航模板會自動地對選擇應用一個過濾器,因此選擇XPath通常最后看起來是這樣的://A[.= 'next> > ']。您不需要知道XPath語法來使用該特性,但是這樣的XPath確保了一個很好的、健壯的選擇,它對未來的更改非常寬容。

單個鏈接導航類似于下一個頁面導航,但是它不應用選擇過濾器。盡管很少使用,但是在選擇過濾器自動應用到下一個頁面選擇的情況下,單鏈接pagenavigation導航模板可以很有用。

當沒有“下一頁”鏈接時,鏈接導航列表就會被使用,而只是一個頁面鏈接的列表。鏈接導航模板的列表選擇了導航中的每個鏈接,因此應該是一個列表模板。

一些網站顯示了前10個導航頁面,然后有一個“下一個”鏈接進入下一個10個導航頁面。在這種情況下,您必須使用兩個分頁導航模板。第一個模板必須是一個鏈接pagenavigation導航模板的列表,該模板選擇了前10個導航頁面。第二個模板必須是選擇下一個鏈接的下一個頁面或單個鏈接pagenavigation導航模板。

當沒有“下一頁”鏈接時,鏈接導航的動態列表會被使用,但是當你在導航中向前移動時,列表中的頁面鏈接和列表中的頁碼會動態變化。動態頁面導航的一個很好的例子就是Google搜索。請注意,Google搜索也有一個“下一頁”鏈接。在這種情況下,您應該使用下一個頁面導航,但是鏈接導航的動態列表也會起作用。
The following groups of options can also be used with PageNavigation templates:

  • Advanced action options
  • Misc template options
  • XPath options
  • Filter options
  • Condition options
  • Duplicate data options

Redirect重定向模板


重定向模板簡單地重定向到一個新網頁。如果一個網頁包含一個框架,并且在一個新模板中處理框架內容更加實用,這是很有用的。另外,web爬蟲收集器不支持框架,因此在使用web爬蟲收集器時,需要重定向來處理框架內容。

Redirect Options
重定向模板可以以兩種方式重定向到另一個網頁:

  • URL redirect
  • Frame

如果您選擇URL重定向選項,您還必須輸入一個固定的URL,模板將始終重定向到那個固定的URL。
如果選擇幀選項,則必須選擇希望模板重定向的框架。模板將在處理的時候從框架中提取URL,并重定向到URL??蚣芸梢允荋TML框架或HTML框架集的框架。

Special URL Parameters
添加URL參數 ??Post 應該被發布在網站上的數據。
添加URL參數 ??Header 以指定應該發送到網站的附加頭信息。

注意:Post參數必須在頭參數之前出現。每個參數是可選的。

例子:
本例中的URL將向站點發送par2=val2&par3=val3,而par1=val1只是一個普通的查詢參數。

http://www.sequentum.com?par1=val1??post=par2=val2&par3=val3??headers=Content-Type: application/x-www-form-urlencoded 

Selection 模板

選擇模板修改另一個模板的選擇。選擇模板可以從目標列表模板中的選擇中添加或刪除元素。

有時,當你有一個列表模板來選擇一個鏈接列表時,你不會想要遵循一些特定的鏈接,或者你想要添加一些鏈接到網頁的不同區域。選擇模板是從列表模板中添加或刪除鏈接的一種簡單方法。

Selection Options
選擇模板可以用兩種方式修改列表模板:

  • Add to a selection 添加一個選擇
  • Remove from a selection 移除一個選擇

您必須始終選擇希望修改的目標列表模板。目標列表模板是通過名稱來選擇的。如果您更改目標列表模板的名稱,您還必須更改任何相關的選擇模板。

Back模板

Visual Web Ripper web瀏覽器收集器使用Internet Explorer導航目標站點并提取數據。當Visual Web Ripper導航到一個新網頁時,它有時需要導航回到先前的網頁,以便處理列表模板中的下一個鏈接。

返回(Back)模板指定了Visual Web Ripper 如何回到上一個的模板。如果沒有添加返回模板,則使用默認的返回模板。默認的返回模板使用瀏覽器歷史導航到前一個模板的網頁,但是如果瀏覽器的歷史沒有將Visual Web Ripper 帶回預期的URL,它就會導航到預期的URL。返回模板對不導航到新頁面的模板沒有影響。

web爬蟲收集器每次打開新網頁時都會打開一個新的web爬蟲,所以它不需要回到以前(上一個)的網頁。因此,后退模板對web爬蟲模式沒有影響。

Back Options
一個Back模板有以下獨特的選項:

Back 模板選項 Back Options
Click link to move back to previous page Back返回模板將點擊一個鏈接,以導航回到先前的網頁。在一些高度動態的網站上,這是一個非常重要的選擇。您可能有搜索結果,您已經定義了一個模板來導航搜索結果中的細節鏈接。細節網頁可能會有“返回到搜索結果”鏈接,點擊這個鏈接可能是回到搜索結果的唯一方法。有時,當目標網站廣泛使用AJAX時,就會發生這種情況。
Move back from skipped template Visual Web Ripper 即使跳過了一個可選的模板,也可以處理后面的模板。
Use browser back history Visual Web Ripper 使用瀏覽器歷史回到以前的網頁。這類似于在web瀏覽器中手動按下Back按鈕。
Must return to previous URL 此選項通常與使用瀏覽器后退歷史選項一起使用,并強制Visual Web Ripper導航到預期的前一個URL,如果Back模板的其他操作不返回到該URL。
Do not move back to previous URL 通常不需要返回到前面的URL。例如,如果數據提取在一個特定的網頁上結束,那么從網頁中導航是浪費時間。
這個選項非常有用,您不需要添加一個返回模板來指定它。相反,您可以簡單地重新設置導航回通用模板選項。

下面的選項也可以用于返回模板:

  • Advanced action options 高級操作選項
  • Misc template options 雜項模板選項
  • Xpath options Xpath選項
  • Filter options 過濾選項

RepeatParent 模板

重復父模板用于為列表中的每個鏈接重復當前模板。該模板經常用于具有不同深度的菜單層次結構的網站。例如,網站可能包含一個產品目錄,產品可以放置在任何類別級別,因此可能有一個類別Computers包含一些產品,但是Computers類別也可能有更多產品的子類別。
顯示Computers類別的網頁可能在頂部有一個列表,上面有所有子類別的鏈接,然后是屬于Computers類別的產品列表。如果所有類別和子類別都使用布局,那么您可以使用相同的模板來處理所有類別頁面。然后您可以使用一個重復的父模板來導航所有的子類別鏈接。

重復父模板是遞歸的,所以只要模板選擇在網頁上找到,Visual Web Ripper就會繼續處理重復的父模板。

重復父模板類似于分頁導航模板,但它們不是相同的。重復父模板不應該用于頁面導航。當一個重復父模板導航到一個新網頁時,它會尋找一組新的子類別鏈接并處理它所找到的所有鏈接。重復父模板不應該用于頁面導航。當一個重復父模板導航到一個新網頁時,它會尋找一組新的子類別鏈接并處理它所找到的所有鏈接。一個pagenavigation導航模板還可以導航到一個新的頁面,并尋找一組新的頁面導航鏈接,但是它會記住它已經訪問過的頁面,所以它不會在導航中一次性處理一個頁面。

Group模板

可以使用group模板來組織內容和模板,從而使項目更容易從邏輯的角度理解。一個組模板不執行操作,它不會影響子元素的選擇XPath。

使用輸入數據源 Using an Input Data Source
當您為一個項目分配一個輸入數據源時,整個項目將為每個輸入數據行運行一次。有時,您可能希望一次運行某個項目的某些部分,以及項目的其他部分用于每個輸入數據行。例如,您可能希望一個項目登錄到一個網站,然后在輸入CSV文件中為每個值提交一個web表單。如果您將輸入文件分配給項目,那么這個項目將會在每個輸入數據行中登錄一次。每次登陸后,網站可能會顯示一個驗證碼(CAPTCHA )的屏幕,如果你登錄網站的次數過多,網站可能會鎖定你。您可以將表單提交模板放在一個組模板中,并將輸入數據源分配給group模板,而不是將輸入數據源分配給項目。該項目只運行一次,但是組模板將為每個輸入數據行運行一次。

您可以在模板選項中使用Advanced選項卡,將輸入數據源分配給一個組模板。


Advanced Options

雜項模板選項 Miscellaneous Template Options

雜項模板選項可用于大多數模板類型,并且經常在web抓取項目中使用。

雜項模板選項 Misc Template Options
Optional template 如果在網頁上沒有找到所選元素,模板仍會被處理,但不會導航到一個新網頁。
在某些情況下,這是一個很有用的選項,例如當您有一個登錄頁面時,只有您尚未登錄時才會顯示登錄頁面。如果您已經登錄了網站,那么Visual Web Ripper 就會簡單地忽略登錄模板。
另一個場景是一個產品目錄,它具有不同的類別級別。您可以為每個類別級別創建一個鏈接模板,但是使模板可選,以便項目可以根據需要跳過類別級別。
Required template 如果選擇的元素不能在網頁上找到,就中止對模板的處理。當前的數據行從輸出數據中刪除。
Extract text 提取所選元素的內文本值。這通常在鏈接模板中使用,以提取鏈接文本。如果該鏈接包含一個圖像,則將提取圖像的alt文本。
這個選項是一個快捷操作,只能提取所選元素的內部文本。如果您想要提取所選元素的其他屬性,您需要創建一個PageArea模板,它提取您需要的屬性,然后使用一個鏈接子模板導航到下一個頁面。
Save template 將模板中的內容保存到目標數據源。有些模板可能只提取腳本使用的內容,而輸出中可能不需要提取的數據,因此可以重新設置這個選項以排除來自輸出的數據。
重置此選項將不包括模板和所有子模板中的所有內容。如果您想要排除一個特定的模板,但是仍然保存子模板,使用排除(Exclude )模板。
Disable template 忽略了模板。該項目不會處理或保存該模板或任何子模板的內容。
Exclude template 該選項類似于Save template選項,但它不會影響子模板,因此子模板中的內容仍然會保存到輸出中。
Wait for element 如果元素是通過AJAX加載的,則可以使用此選項來等待元素。這是一個使用等待腳本的簡單方法,但它只會等待頁面上的元素出現。如果您需要更多的控制,例如等待一個元素包含一個特定的值,您需要使用一個等待腳本。
Element wait condition 如果一個元素在一個完整的頁面加載后被AJAX加載延遲,那么可以使用等待腳本告訴Visual Web Ripper等待,直到元素完成加載。
Navigate back Visual Web Ripper web瀏覽器收集器使用Internet Explorer導航目標站點并提取數據。當可視的Visual Web Ripper導航到一個新網頁時,它有時需要導航回到先前的網頁,以便處理列表模板中的下一個鏈接。

通常,它不需要返回到以前的URL。例如,如果數據提取在一個特定的網頁上結束,那么從網頁中導航是浪費時間。

模板操作 Template Actions

模板可以執行兩種操作:

  • Full page load
  • JavaScript

完整的頁面加載(Full page load)操作用于導航到一個全新的web頁面,JavaScript操作用于在當前web頁面上觸發JavaScript事件和AJAX請求。

自動檢測適當的動作 Detecting the Appropriate Action Automatically
Visual Web Ripper 通??梢宰詣訖z測到最合適的模板動作。如果您將模板動作設置為自動檢測,Visual Web Ripper將自動配置模板動作。當您第一次在編輯器中打開模板時,將配置模板操作。

Full Page Load Options
選擇完整的頁面加載選項將使您能夠訪問以下操作選項:

整而全加載選項 Full Page Load Options
Start new web browser

(只適用于鏈接Link和FormSubmit模板)
當Visual Web Ripper在WebBrowser模式下運行時,一個單一的瀏覽器實例將被用于瀏覽網站。如果你正在遍歷一長串鏈接,Visual Web Ripper會點擊一個鏈接打開一個新網頁,從新網頁中提取數據,然后回到鏈接列表,以繼續下一個鏈接。

這可能是一個緩慢的過程,因為Visual Web Ripper需要為列表中的每個鏈接導航兩個網頁。首先,它會導航鏈接,然后它會導航到鏈接列表。

如果您是手動導航鏈接列表,您可能會在新窗口或瀏覽器選項卡中打開每個鏈接,以避免每次都導航到鏈接列表。如果您選擇了Start new web browser選項,那么Visual Web Ripper 也可以做同樣的工作。
AJAX before full page load 當導航到一個新網頁時,導航應該立即開始。Visual Web Ripper 不需要等待導航開始。相反,如果它在幾秒鐘內沒有開始,它就假定導航失敗了。有時網站在導航前會執行一個JavaScript,以顯示“請等待……””消息。這樣的JavaScript可能需要花費幾秒鐘的時間來執行,特別是當JavaScript激活AJAX調用時。在這種情況下,您可以選擇AJAX before full page load,以確保Visual Web Ripper 不會報告頁面加載失敗。
Data collector

(僅適用于鏈接Link和鏈接區域LinkArea模板)
Visual Web Ripper 可以在WebBrowser或web爬蟲模式中提取數據。web爬蟲模式要快得多,但它并不適用于所有的web頁面,因為它忽略了JavaScript和所有動態內容。

網站通常只在一些網頁上使用動態內容。例如,一個網站可能會在搜索結果頁面上使用JavaScript進行頁面導航,但是一旦你點擊了每個搜索結果的細節鏈接,JavaScript不再被使用。在這種情況下,您可以在單擊詳細鏈接時切換到web爬蟲模式,從而顯著提高數據提取性能。

請參閱web爬蟲收集器獲取關于在web爬蟲模式中提取數據的更多信息。
Link transformation

(僅適用于鏈接和鏈接區域模板)
鏈接轉換用于在Visual Web Ripper打開URL之前轉換鏈接URL。當鏈接調用一個打開新網頁的JavaScript時,這通常是有用的。因為鏈接調用了JavaScript,所以不能使用web爬蟲模式。但是,您通常可以確定靜態URL是什么,并使用鏈接轉換將JavaScript調用轉換為靜態URL,這允許您使用web爬蟲模式打開網頁。

例如,一個鏈接可以激活一個看起來像這樣的JavaScript:
openNewWebPage('/products/category/products.aspx?id=3456')
您可以使用鏈接轉換將上面的JavaScript轉換為以下靜態URL:
/products/category/products.aspx?id=3456
有關轉換腳本的更多信息,請參閱轉換腳本。

JavaScript Options
有三種不同類型的JavaScript操作。

  • 異步(Asynchronous) 所有JavaScript都是在默認情況下同步執行的,但是JavaScript可以在給定的超時后使用函數setTimeout來執行JavaScript代碼,JavaScript函數或事件可能會在所有相關的JavaScript代碼執行之前返回。Visual Web Ripper 不能自動等待異步JavaScript的執行,所以您需要做額外的配置來幫助可視化的Visual Web Ripper 確定何時完成了JavaScript的執行。
  • 同步(Synchronous)。在所有JavaScript代碼執行之前,同步JavaScript不會返回,因此Visual Web Ripper可以自動等待同步JavaScript執行。
  • AJAX。AJAX是一種特殊的異步JavaScript形式。Visual Web Ripper 通常可以鉤住AJAX請求,因此自動決定何時完成異步AJAX請求。Visual Web Ripper 不會總是能夠鉤住AJAX請求,在這種情況下應該使用異步JavaScript。

選擇異步Asynchronous JavaScript選項可以讓您訪問以下操作選項:

異步JS選項 Asynchronous JavaScript Options
Wait for element Visual Web Ripper當異步JavaScript完成時,除了在網頁上尋找更改外,無法檢測到。Visual Web Ripper將繼續等待異步JavaScript,直到選定的等待元素的內容發生變化。
Script wait condition Visual Web Ripper 在等待異步JavaScript完成時,需要執行一個默認的步驟列表。默認的步驟適用于許多場景,但有時您需要添加一個等待腳本,以便告訴Visual Web Ripper何時停止等待異步JavaScript完成。

Advanced Options
下面的高級操作選項很少使用,但是可能需要從一些網站提取數據:

高級選項 Advanced Action Options
Partial page load

(僅適用于頁面加載操作)
當一個網頁載入時,它會經過以下三個狀態:
1.Loading 加載中
2.Interactive 交互
3.Completed 完成

當一個網頁加載時,它是不可訪問的。Visual Web Ripper 總是要等待這個狀態的通過。當一個網頁是交互式的,網頁的一些部分已經加載,但是其他的部分,比如圖片,仍然在加載。網頁可以在交互模式下訪問,但是Visual Web Ripper 可能無法訪問網頁上所有的元素。當一個網頁完成時,它已經完全載入了網頁的所有元素(除了加載AJAX的動態內容之外)。

有時網站可能會加載外部內容,比如廣告圖片。外部內容的加載速度非常慢,這可能會顯著降低數據提取的性能。您可以使用部分頁面加載選項告訴Visual Web Ripper ,當頁面進入交互模式時,它可以開始處理一個網頁。Visual Web Ripper 在開始處理網頁之前,會在交互模式下等待一個特定的時間間隔。時間間隔設置在項目選項的Connection選項卡中。

有時,您可能希望部分頁面加載適用于項目中的所有操作,而不僅僅是一個特定的模板操作。您可以在項目選項的Connection選項卡中為整個項目設置部分頁面加載選項。
Click to get new URL

(僅適用于頁面加載操作)
當您從 WebBrowser切換到 WebCrawler收集器或使用新的web瀏覽器選項時,Visual Web Ripper試圖從所選的鏈接元素中提取URL,然后在WebCrawler模式或新的WebBrowser中導航到這個URL。

有時,選中的link元素使用JavaScript導航到新頁面。在這種情況下,Visual Web Ripper 將無法從link元素中提取出一個靜態URL。

你可以使用點擊獲取新的URL來告訴Visual Web Ripper,它應該點擊鏈接來獲取URL。Visual Web Ripper會點擊鏈接并開始導航,但是一旦它知道瀏覽器的導航位置,它就會停止導航并提取URL。
AJAX in page areas

(僅適用于JavaScript操作)
PageArea模板限制元素選擇到一個網頁的特定區域。如果一個PageArea模板有一個鏈接子模板,并且這個子模板被打開,頁面區域就不再有任何效果,因為Visual Web Ripper 已經導航到一個新的網頁,頁面區域不再存在。

如果鏈接子模板有AJAX或JavaScript操作,那么Visual Web Ripper 不會導航到新網頁,而是可以將動態內容加載到相同的網頁上。因此,頁面區域可能在AJAX或JavaScript操作之后仍然存在,您可以在頁面區域選項中使用AJAX,指定頁面區域在AJAX或JavaScript操作之后仍然可用。
Form submit links

(僅適用于web爬蟲模式的全頁面加載操作)
當Visual Web Ripper 在WebBrowser模式中打開一個鏈接模板時,它會點擊所選的鏈接來導航到一個新的網頁。因為Visual Web Ripper 點擊了鏈接,它仍然會導航到新網頁,不管它是一個真正的鏈接還是一個表單按鈕。

在web爬蟲模式中,Visual Web Ripper總是提取一個鏈接的URL屬性并導航到那個URL。如果選中的link元素是一個表單按鈕,那么Web爬行器就無法導航,因為表單按鈕沒有URL屬性。表單提交鏈接選項可用于告訴Visual Web Ripper,鏈接元素實際上是一個表單按鈕,它應該嘗試提交表單以導航到新網頁。
Action events 默認的模板操作總是在選中的元素上觸發一個單擊事件。有時,您可能需要觸發其他事件來執行所需的操作。例如,AJAX操作可能需要在HTML元素上懸停,以便激活一個動態彈出窗口并從中提取數據。在這種情況下,您可以添加onMouseOver事件,導致Visual Web Ripper 觸發事件而不是單擊事件。

Visual Web Ripper支持三種非常規事件。domclick事件會觸發click事件,并對所選元素執行缺省操作。domscroll事件滾動到選中元素的右下角。窗口滾動(windowscroll)事件將選中的元素的窗口滾動到右下角。
Redirect on meta refresh

(僅適用于頁面加載操作)
一些網頁在短時間間隔內刷新或重定向。如果一個元刷新的HTML標簽被識別,Visual Web Ripper 就會立即重定向,但是如果你想讓Visual Web Ripper 留在網頁而不重定向的話,你可以使用這個選項。
Visit each page only once

(僅適用于頁面加載操作)
鏈接列表模板遵循所有選擇的鏈接,甚至是重復鏈接。您可以使用這個選項告訴Visual Web Ripper,它不應該導航已經導航的鏈接。

Visual Web Ripper只看鏈接元素的靜態URL。許多網站使用會話(sessions)或post變量來生成具有相同URL的不同版本的網頁,所以你應該小心使用這個選項。否則,當您希望從更多的web頁面中提取數據時,您可能會從一個單獨的頁面中提取數據。
Click on exact element 如果一個鏈接模板選擇了一個不是鏈接元素的HTML元素,那么Visual Web Ripper 就會尋找鏈接元素的子元素。如果它找到了一個鏈接元素,它就會單擊這個元素而不是選中的元素。

有些網站使用JavaScript將click事件綁定到通常不是鏈接元素的HTML元素上。您可以使用Click onexact element 選項來告訴Visual Web Ripper ,它應該點擊所選元素,而不是尋找子鏈接元素。
Delay after action 一些網站如果發現你在一個網站上瀏覽得太快,就會失敗或屏蔽你。您可以使用延遲之后的動作選項,在模板操作之后設置一個固定的延遲。

如果您想將此選項應用到整個項目中的所有操作,那么在項目選項的Connection選項卡中使用Page load delay選項。
Is block popup
(僅適用于完全頁面加載操作)
Restart browser session
(僅適用于完全頁面加載操作)
有時,網站可能會生成一個彈出窗口作為頁面加載事件的一部分。Visual Web Ripper 會自動導航到這個彈出窗口的URL。例如,如果彈出窗口是一個對您不感興趣的廣告,那么使用這個選項來阻止彈出窗口。
此選項可用于在操作之前模擬web瀏覽器重新啟動。
Repeated AJAX calls(僅適用于AJAX操作) 果您想要重復AJAX操作,只要動作結果在AJAX回調中,就可以使用該選項。這個選項可以與操作窗口滾動或domscroll一起使用,當窗口或web元素被滾動時動態加載的內容。
Wait element change optional
(僅適用于JS操作)
有時, Visual Web Ripper 不應該等待異步JavaScript對等待元素進行更改,但應該等待直到頁面上的等待元素出現。
Wait element change optional on first action
(僅適用于JS操作)
當你想要Visual Web Ripper 等待一個等待的元素時,使用這個選項,除非點擊列表中的第一個鏈接。

例如,您可能正在從一個圖像庫中提取圖像,并有一個鏈接列表,這些鏈接使用AJAX將不同的圖像加載到庫中。當網頁第一次加載時,圖片庫中的第一個圖像可能是預先加載的,因此在點擊第一個圖像鏈接后等待圖像改變會失敗。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容