理解概念
在開始使用Visual Web Ripper之前嗽桩,您需要理解底層的模板(Template)概念兔乞。大多數(shù)web抓取工具都使用宏風格(Macro-Style)處理汇鞭,并遵循一系列命令。Visual Web Ripper是非常不同的庸追。將一個數(shù)據(jù)提取項目看作是一個連續(xù)的命令序列霍骄,這將導致一個設計不佳的項目。
在Visual Web Ripper中淡溯,模板(Template)定義了如何從一種類型的網(wǎng)頁中提取數(shù)據(jù)读整。例如,如果您是從產(chǎn)品目錄中提取數(shù)據(jù)咱娶,那么產(chǎn)品細節(jié)頁面將由一個模板定義米间。在一個目錄中列出所有產(chǎn)品的網(wǎng)頁將由另一個模板來定義强品。每個模板都可以有一個操作來描述web瀏覽器應該如何導航到模板定義的頁面。例如屈糊,定義產(chǎn)品細節(jié)頁面的模板將會有一個動作的榛,告訴web瀏覽器單擊一個產(chǎn)品詳細信息鏈接,以導航到產(chǎn)品詳細信息頁面另玖。如果產(chǎn)品細節(jié)鏈接在頁面上列出了一個類別中的所有產(chǎn)品困曙,那么定義product details頁面的模板必須是定義產(chǎn)品列表頁面的模板的子模板。
項目(Projects),模板( Templates)和內(nèi)容(Content)
Visual Web Ripper 項目定義了如何從整個網(wǎng)站中提取內(nèi)容谦去,而不僅僅是一個網(wǎng)頁慷丽。項目包括模板和內(nèi)容元素,其中模板定義了如何在網(wǎng)站中導航鳄哭,內(nèi)容元素定義了從網(wǎng)頁中提取的信息要糊。
模板和內(nèi)容的層次結(jié)構(gòu)類似于文件系統(tǒng)中的文件夾和文件。模板可以包含子模板和內(nèi)容妆丘,但是內(nèi)容不能包含任何子項锄俄。
模板和內(nèi)容通常在網(wǎng)頁上選擇一個或多個HTML元素。模板在打開模板時勺拣,通常會對所選的HTML元素執(zhí)行操作奶赠,例如單擊鏈接或表單提交按鈕。當你打開一個模板時药有,通常你也會打開一個新的網(wǎng)頁毅戈,這個模板中的內(nèi)容元素定義了如何從新網(wǎng)頁中提取信息。
一種特殊類型的模板愤惰,“頁面區(qū)域(PageArea)” 模板苇经,不打開一個新網(wǎng)頁,而是定義當前網(wǎng)頁的一個子區(qū)域宦言。該模板中的所有內(nèi)容元素都從定義的子區(qū)域中選擇信息扇单。
模板常常與列表選項結(jié)合使用,以選擇鏈接列表奠旺。如果一個模板選擇一個元素列表蜘澜,我們將其稱為列表模板(List Template),盡管列表選項只是一個模板的屬性响疚。如果一個模板選擇了一個鏈接列表兼都,那么Visual Web Ripper就會遍歷鏈接,并為每個鏈接處理模板稽寒。在設計一個選擇鏈接列表的模板時,設計人員將導航到列表中的第一個鏈接趟章。您可能更喜歡使用不同的URL來設計模板杏糙,這樣您就可以在打開模板和設計器之前選擇特定的鏈接慎王。
用戶界面
Visual Web Ripper 用戶界面也被稱為項目設計器,用于創(chuàng)建或修改數(shù)據(jù)提取項目宏侍。
項目設計人員可以用于以下任務:
- 創(chuàng)建和修改數(shù)據(jù)提取項目
- 運行數(shù)據(jù)采集項目
- 查看已采集的網(wǎng)頁數(shù)據(jù)
- 任務計劃數(shù)據(jù)采集項目
地址欄(The Address Bar)
地址欄用于輸入您想要采集數(shù)據(jù)的站點的開始URL赖淤。地址欄應該只用于輸入您的開始URL。你不能使用地址欄在網(wǎng)站中導航谅河。相反咱旱,使用模板來執(zhí)行導航。如果您不知道確切的起始URL绷耍,您可以輸入任何網(wǎng)站URL吐限,然后切換到導航模式,這允許您在web瀏覽器中導航褂始。一旦你到達了想要開始數(shù)據(jù)提取的網(wǎng)頁诸典,你可以切換回選擇模式,當前網(wǎng)頁的URL將自動設置為開始URL崎苗。您可以通過單擊瀏覽器工具欄按鈕中的導航切換到導航模式狐粱。
工具欄(The Toolbar)
工具欄包含了應用程序特性的快捷方式。兩個最重要的快捷方式是運行項目和目標數(shù)據(jù)源工具欄按鈕胆数。Run Project工具欄按鈕用于運行當前的數(shù)據(jù)采集項目肌蜻。目標數(shù)據(jù)源工具欄按鈕用于設置您想要保存提取的數(shù)據(jù)的位置。
項目導航欄(The Project Navigation Bar)
項目導航欄用于在數(shù)據(jù)采集項目中導航必尼。一個數(shù)據(jù)采集項目通常由模板和子模板組成蒋搜,您可以使用項目導航欄在模板之間輕松導航。項目導航欄還有一個后退按鈕胰伍,讓您可以輕松地導航到父模板齿诞。
項目模板與內(nèi)容窗口(The Project Templates and Content Window)
這個窗口列出了當前打開模板中的所有子模板和內(nèi)容元素。該窗口有兩個選項卡骂租,內(nèi)容和模板祷杈,用于在內(nèi)容和模板視圖之間進行切換。您可以使用New按鈕在content選項卡激活時添加新的內(nèi)容元素渗饮,或者在模板選項卡激活時添加一個新模板但汞。
在這個窗口中列出的所有內(nèi)容元素和模板都有一個綠色、黃色或紅色的狀態(tài)圖標互站。
- 綠色狀態(tài)圖標表示內(nèi)容或模板不存在問題私蕾。
- 黃色狀態(tài)圖標表示內(nèi)容元素或模板已被配置為在網(wǎng)頁上選擇元素不存在。
- 紅色狀態(tài)圖標表示內(nèi)容元素或模板已配置為在不存在的網(wǎng)頁中選擇所需的元素胡桃。
通過單擊與每個內(nèi)容元素和模板相關聯(lián)的edit按鈕踩叭,您可以編輯內(nèi)容元素或模板的選擇或其他選項。
您可以通過單擊與每個模板相關聯(lián)的open按鈕打開一個模板。當您打開一個具有相關操作的模板容贝,例如鏈接模板的鏈接模板時自脯,web瀏覽器可能會導航到一個新的位置。
您可以通過使用Edit菜單或右鍵單擊內(nèi)容元素或模板斤富,并從上下文菜單中選擇move/copy來移動膏潮、復制、插入和刪除內(nèi)容元素和模板满力。
模板與內(nèi)容選項窗口(The Template and Content Options Window)
選項窗口用于為當前正在編輯的內(nèi)容元素或模板設置選項焕参。可用的選項取決于內(nèi)容元素的類型或正在編輯的模板油额。
即使沒有內(nèi)容元素或模板被編輯叠纷,您也可以設置選項。然后悔耘,這些選項將應用于您添加的下一個新內(nèi)容元素或模板讲岁。
捕獲窗口(The Capture Window)
捕獲窗口顯示web瀏覽器中當前所選元素的內(nèi)容。這個窗口有兩個標簽:內(nèi)容(content)和HTML衬以。內(nèi)容選項卡顯示由Visual Web Rippere采集的內(nèi)容缓艳。HTML選項卡顯示所選元素的HTML表示。
如果web瀏覽器中所選的元素是表單字段看峻,則捕捉窗口用于指定Visual Web Rippere 在提交web表單時應該使用的輸入值阶淘。
如果您正在選擇一個元素列表,那么捕獲窗口的狀態(tài)欄將顯示在web瀏覽器中選擇的元素的數(shù)量互妓。
內(nèi)嵌網(wǎng)頁瀏覽器(The Web Browser)
Web瀏覽器用于選擇HTML元素溪窒。當您將鼠標懸停在一個HTML元素上時,它的背景將變?yōu)?b>黃色冯勉。當你點擊一個HTML元素時澈蚌,它會被選中,它的背景會變成藍色灼狰。
有時候選擇一個特定的HTML元素是很困難的宛瞄,因為它的可見區(qū)域非常小,或者很難看到一個HTML元素的結(jié)束和另一個開始交胚。Visual Web Rippere有一些工具可以幫助你做出選擇份汗。您可以使用工具欄按鈕展開選擇(-)或限制(+)選擇來選擇父或子HTML元素,或者您可以右鍵單擊一個HTML元素蝴簇,并從上下文菜單中選擇select元素來查看一個相鄰的HTML元素的列表杯活。您還可以使用樹形(├)視圖工具欄按鈕來獲得當前網(wǎng)頁的樹視圖。
你的第一個數(shù)據(jù)采集項目
根據(jù)目標網(wǎng)站的特點熬词,數(shù)據(jù)提取很容易或困難旁钧。我們建議你從一個簡單的網(wǎng)站開始吸重。一個簡單的目標網(wǎng)站是一個相對靜態(tài)的網(wǎng)站,使用有限的JavaScript和AJAX回調(diào)歪今。
在為一個特定的網(wǎng)站創(chuàng)建一個數(shù)據(jù)提取項目之前晤锹,在標準版本的Internet Explorer中熟悉這個網(wǎng)站。這將幫助您理解Visual Web Rippere如何在網(wǎng)站上導航以提取所需的數(shù)據(jù)彤委。
首先,您需要確定一個好的開始URL或衡。有時最好的開始URL只是站點的開始URL焦影,但是通常需要的數(shù)據(jù)在子頁面上。您應該在Internet Explorer中導航到最好的開始URL封断,然后復制URL斯辰,以便在Visual Web Rippere中使用。注意坡疼,有些網(wǎng)站允許導航而不改變可見的URL彬呻。在這種情況下,你可能沒有一個直接指向你喜歡的起始網(wǎng)頁的起始URL柄瑰,而是需要在你的數(shù)據(jù)提取項目中添加模板來導航到那個網(wǎng)頁闸氮。
一旦您擁有了開始的URL,您就可以通過遵循這些通用的步驟開始創(chuàng)建您的數(shù)據(jù)采集項目教沾。
步驟一 —— 加載開始URL
打開Visual Web Rippere蒲跨,并將開始URL復制到地址欄。Visual Web Rippere載入開始網(wǎng)頁授翻。
步驟二 —— 添加模板與內(nèi)容
現(xiàn)在可以開始向項目中添加模板和內(nèi)容元素了或悲。下面我們列出了一些常見的場景。
場景1-導航到您喜歡的開始頁面
如果你不能為你喜歡的開始頁面獲得一個直接的開始URL堪唐,你可能需要Visual Web Rippere跟隨一個鏈接來導航到網(wǎng)頁巡语。
要在web瀏覽器中選擇鏈接,單擊鏈接并添加一個新的鏈接模板淮菠。單擊Open按鈕打開鏈接模板男公。web瀏覽器將導航到新頁面。
現(xiàn)在您可以開始向新的鏈接模板添加子模板和內(nèi)容元素了兜材。當Visual Web Rippere運行這個項目時理澎,它將打開鏈接模板,然后在處理任何子模板和內(nèi)容元素之前導航到新的網(wǎng)頁曙寡。
- 瀏覽一個網(wǎng)站糠爬,了解更多關于使用鏈接模板瀏覽網(wǎng)站的信息。
- 有關鏈接模板的更多信息举庶,請參見鏈接模板执隧。
場景2-提交Web表單
您可能需要提交一個web表單,可能是提交一個搜索查詢或一個登錄表單。
單擊web瀏覽器中的第一個表單字段镀琉,然后添加一個新的FormField內(nèi)容元素峦嗤。使用捕獲窗口來輸入您希望Visual Web Rippere在表單字段提交Web表單時輸入的值。對您希望看到的所有表單字段重復這個過程屋摔。
現(xiàn)在添加提交web表單的FormSubmit模板烁设。單擊web瀏覽器中的表單提交按鈕,然后添加一個FormSubmit模板钓试。單擊Open按鈕打開FormSubmit模板装黑。web瀏覽器將提交表單并導航到一個新頁面。
現(xiàn)在您可以開始向新的FormSubmit模板添加子模板和內(nèi)容元素了弓熏。當Visual Web Rippere運行這個項目時恋谭,它將打開FormSubmit模板,然后在處理任何子模板和內(nèi)容元素之前提交Web表單挽鞠。
- 請參閱提交Web表單以獲得關于Web表單的更多信息疚颊。
- 有關FormSubmit模板的更多信息,請參見FormSubmit模板信认。
- 有關FormField內(nèi)容元素的更多信息材义,請參閱FormField內(nèi)容。
場景3——遍歷鏈接列表
有時一個網(wǎng)頁會顯示一個鏈接列表狮杨,你想要跟隨列表中的每個鏈接母截。要做到這一點,您需要選擇所有的鏈接橄教,然后添加一個鏈接模板清寇。
要選擇所有鏈接,選擇第一個鏈接护蝶,然后右鍵單擊第二個鏈接华烟,并從上下文菜單中選擇Create List。單擊Open按鈕打開鏈接模板持灰。web瀏覽器將導航到列表中的第一個鏈接盔夜。如果您希望在打開模板時看到Visual Web Rippere能夠?qū)Ш降讲煌逆溄樱恍柙诖蜷_模板之前點擊Web瀏覽器中的目標鏈接堤魁。當Visual Web Rippere運行這個項目時喂链,它將打開并處理這個模板的模板。
場景4-提取內(nèi)容
一旦網(wǎng)頁瀏覽器顯示你想要提取內(nèi)容的網(wǎng)頁妥泉,你就需要為你想要提取的網(wǎng)頁內(nèi)容元素添加內(nèi)容元素椭微。
要添加內(nèi)容元素,單擊web瀏覽器中適當?shù)腍TML元素盲链,然后單擊New按鈕以添加內(nèi)容元素蝇率。
有關提取內(nèi)容元素的更多信息迟杂,請參閱提取內(nèi)容。
場景5——遍歷搜索結(jié)果
如果web瀏覽器顯示搜索結(jié)果本慕,并且您想為搜索結(jié)果中的每一行提取內(nèi)容排拷,那么您需要創(chuàng)建一個列表選擇,它將選擇搜索結(jié)果中的所有行锅尘。
要選擇所有的行监氢,選擇web瀏覽器中的第一行,然后右鍵單擊第二行中的任何地方藤违,并從上下文菜單中選擇Create List忙菠。一旦您創(chuàng)建了列表選擇,添加一個新的PageArea模板并單擊Open按鈕打開該模板纺弊。
現(xiàn)在您已經(jīng)進入了一個PageArea模板,您可以只在頁面區(qū)域內(nèi)的web瀏覽器中選擇那些內(nèi)容元素骡男。要添加一個內(nèi)容元素淆游,單擊web瀏覽器中的一個行中的HTML元素,然后單擊New按鈕以添加內(nèi)容元素隔盛。當您在一行中單擊HTML元素時犹菱,將自動為搜索結(jié)果中的每一行自動重復該選項。
- 有關創(chuàng)建列表選擇的更多信息吮炕,請參見創(chuàng)建列表腊脱。
- 有關PageArea模板的更多信息,請參閱PageArea模板龙亲。
場景6-從細節(jié)頁面中提取內(nèi)容
考慮一下web瀏覽器顯示搜索結(jié)果的情況陕凹,您已經(jīng)添加了一個PageArea模板來迭代搜索結(jié)果行。您已經(jīng)打開了PageArea模板鳄炉,并可能添加了一些內(nèi)容元素杜耙。每個搜索結(jié)果行都有一個鏈接,它打開一個包含更多信息的詳細頁面拂盯,并且您希望從這個細節(jié)頁面中提取更多內(nèi)容佑女。
在一個搜索結(jié)果行中選擇鏈接,并添加一個鏈接模板谈竿。Visual Web Rippere會自動選擇所有搜索結(jié)果行中的鏈接团驱,因為您在一個PageArea列表模板中。
打開鏈接模板空凸,并開始為您想從細節(jié)頁面中提取的所有內(nèi)容添加內(nèi)容元素嚎花。
場景7-在搜索結(jié)果中處理所有頁面
在前面的場景中,考慮一個web瀏覽器顯示搜索結(jié)果的情況劫恒,并且您已經(jīng)創(chuàng)建了一個PageArea模板來迭代搜索結(jié)果行贩幻。搜索結(jié)果包含許多行轿腺,這些行顯示在多個web頁面上。頁面導航鏈接用于在搜索結(jié)果頁面中導航丛楚。
大多數(shù)使用頁面導航的網(wǎng)頁都有一個下一頁鏈接族壳,在導航欄中打開下一頁,如果是這樣的話趣些,在web瀏覽器中選擇下一個頁面鏈接仿荆,并添加一個pageNavigation導航模板。必須將pageNavigation導航模板添加到與PageArea模板相同的位置坏平,該模板在搜索結(jié)果中迭代拢操。如果打開PageArea模板,Visual Web Rippere不會打開模板舶替,但是Web瀏覽器將導航到搜索結(jié)果的下一頁令境。
步驟3——設置目標數(shù)據(jù)源
在向項目添加模板和內(nèi)容元素之后,是時候決定保存提取的數(shù)據(jù)的位置了顾瞪。如果您不選擇導出目標舔庶,Visual Web Rippere將把提取的數(shù)據(jù)導出為Excel格式。單擊工具欄按鈕數(shù)據(jù)導出來更改導出目標陈醒。如果將提取的數(shù)據(jù)導出到文件格式说墨,比如Excel超升,默認的輸出文件夾是 我的文檔\Visual Web Ripper\Output\[PROJECT_NAME]
步驟4-運行數(shù)據(jù)采集項目
現(xiàn)在是運行您的數(shù)據(jù)采集項目的時候了。單擊工具欄按鈕運行項目,以彈出下面的屏幕母怜。
一個數(shù)據(jù)采集項目可以使用web瀏覽器货徙、internet explorer或web爬蟲代理運行胚委。選擇web瀏覽器代理竹椒,直到您對該軟件更加熟悉,并且您已經(jīng)準備好優(yōu)化您的數(shù)據(jù)采集項目膝晾。
第一次運行一個項目時苍鲜,總是檢查視圖瀏覽器和調(diào)試選項。這允許您觀察Visual Web Rippere是如何提取數(shù)據(jù)的玷犹,這使得糾正數(shù)據(jù)提取項目中的任何問題變得更加容易混滔。
數(shù)據(jù)采集示例
在本例中,我們將從澳大利亞黃頁中提取公司數(shù)據(jù)歹颓。網(wǎng)站看起來是這樣的坯屿。
我們將在新南威爾士州(NSW)尋找所有的旅館(Hotels)和蘋果商店(Apple Shops)。要做到這一點,我們需要配置一個數(shù)據(jù)采集項目撤奸,該項目可以提交搜索表單喊括,然后從搜索結(jié)果中提取數(shù)據(jù)。
按照以下步驟創(chuàng)建數(shù)據(jù)提取項目矢棚。
步驟1-輸入開始URL
搜索表單在網(wǎng)站的主頁上,所以最好的開始網(wǎng)址是www.yellowpages.com.au路鹰。我們在Visual Web Rippere地址欄中輸入開始URL并加載網(wǎng)站玄窝。
步驟2-配置搜索表單
要配置一個提交web表單的項目,我們需要為每個表單字段添加FormField內(nèi)容元素和表單提交按鈕的FormSubmit模板悍引。
- 請參閱提交Web表單以獲得關于Web表單的更多信息。
- 有關FormSubmit模板的更多信息帽氓,請參見FormSubmit模板趣斤。
- 有關FormField內(nèi)容的更多信息,請參閱FormField內(nèi)容黎休。
首先浓领,我們?yōu)镕ind按鈕添加FormSubmit模板。
1.單擊捕獲的元素窗口中的Template選項卡势腮。這確保了我們使用的是模板而不是內(nèi)容元素联贩。
2.單擊web瀏覽器中的Find按鈕。
3.單擊New按鈕或右鍵單擊并從上下文菜單中選擇新模板捎拯。
接下來泪幌,我們?yōu)楸韱巫侄翁砑覨ormField元素。
1. 單擊捕獲的元素窗口中的Content選項卡署照。這確保了我們在處理內(nèi)容元素祸泪,而不是模板。
2. 單擊web瀏覽器中的什么輸入字段建芙。
3.單擊New按鈕或右鍵單擊并從上下文菜單中選擇新內(nèi)容没隘。
4. 在捕獲窗口中輸入輸入值。我們需要兩次提交web表單(一次用于搜索詞酒店禁荸,一次用于蘋果商店)右蒲,所以我們在捕獲窗口中輸入搜索詞阀湿。
5. Visual Web Rippere自動將FormField輸入值保存到輸出數(shù)據(jù)中。如果您不想保存輸入值瑰妄,您可以重新設置save Content選項陷嘴。
接下來,我們?yōu)閃here表單字段添加FormField元素翰撑。
1. 單擊web瀏覽器中的Where輸入字段罩旋。
2. 單擊New按鈕或右鍵單擊并從上下文菜單中選擇新內(nèi)容。
3. 在捕獲窗口中輸入輸入值眶诈。我們只需要在新南威爾士州進行搜索涨醋,所以我們只在捕獲窗口中輸入新南威爾士(NSW)的單一值。
現(xiàn)在我們已經(jīng)完成了web表單的配置逝撬,因此我們可以通過單擊open按鈕打開FormSubmit模板浴骂。這將在web瀏覽器中提交web表單并打開搜索結(jié)果頁面。
步驟3——遍歷搜索結(jié)果
現(xiàn)在我們在搜索結(jié)果頁面上宪潮,我們想要提取結(jié)果中列出的每個公司的數(shù)據(jù)溯警。當您想從web元素列表中提取數(shù)據(jù)時,通常需要使用PageArea模板來遍歷該列表狡相。
我們通過以下步驟創(chuàng)建一個PageArea列表模板:
1. 選擇列表中的第一行梯轻。
2. 右鍵單擊第二行中的任何地方,并從上下文菜單中選擇Create List尽棕。
3. 單擊New按鈕喳挑,或右鍵單擊上下文菜單中的新模板。
現(xiàn)在滔悉,我們已經(jīng)完成了PageArea模板的配置伊诵,因此我們可以通過單擊open按鈕打開模板。PageArea模板沒有導航到一個新網(wǎng)頁回官,但是限制了所有選擇到一個網(wǎng)頁的特定區(qū)域曹宴。當您打開一個PageArea模板時,頁面區(qū)域會在web瀏覽器中顯示為淡綠色歉提。
步驟4-在PageArea模板中提取內(nèi)容
我們將在搜索結(jié)果中提取所有公司名稱笛坦。我們在一個PageArea列表模板中,它選擇所有的搜索結(jié)果行苔巨,因此在一個行中所做的所有選擇將被自動地應用到搜索結(jié)果中的所有其他行弯屈。按照以下步驟配置項目以提取公司名稱:
1. 單擊第一行中的公司名稱。所有其他行中的公司名稱將被自動選擇恋拷。
2. 單擊New按鈕或右鍵單擊并從上下文菜單中選擇新內(nèi)容资厉。
3.標題是一個鏈接,因此Visual Web Rippere自動將內(nèi)容類型設置為鏈接蔬顾,但是我們想要提取文本宴偿,因此我們將內(nèi)容類型更改為元素湘捎。
步驟5-導航到詳情頁面
我們?nèi)匀辉赑ageArea模板中,我們已經(jīng)配置了這個項目來提取公司的標題內(nèi)容窄刘。我們還想要提取一些只有在我們點擊公司鏈接并查看公司詳細頁面時才可用的內(nèi)容窥妇。
按照以下步驟添加一個鏈接模板,該模板將導航到詳細頁面:
1. 單擊捕獲的元素窗口中的Template選項卡娩践。這確保了我們使用的是模板而不是內(nèi)容元素活翩。
2. 在第一個搜索結(jié)果行中單擊公司標題。我們在一個PageArea列表模板中翻伺,它選擇了所有的搜索結(jié)果行材泄,因此,在一行中所做的所有選擇都將自動應用到搜索結(jié)果中的所有行吨岭。
3. 單擊New按鈕或右鍵單擊并從上下文菜單中選擇新模板拉宗。
4. 確保模板類型設置為鏈接,而不是PageArea辣辫。
5. 有時旦事,當您想要遵循一個鏈接列表時,開始新的Web瀏覽器選項是很有用的急灭。通常情況下姐浮,Visual Web Ripper會跟隨一個鏈接并處理下一頁,然后再返回到先前的頁面葬馋,以便跟蹤列表中的下一個鏈接卖鲤。如果你激活了新的Web瀏覽器選項,Visual Web Ripper將會打開一個新的Web瀏覽器的鏈接点楼,所以它不需要回到以前的網(wǎng)頁來跟蹤下一個鏈接。這樣可以節(jié)省時間白对,使您的數(shù)據(jù)提取項目運行得更快掠廓。
我們已經(jīng)完成了對細節(jié)頁面的鏈接模板的配置,因此我們可以通過單擊open按鈕打開鏈接模板甩恼。web瀏覽器將導航到列表中的第一個公司鏈接蟀瞧。如果你想打開一個不同的公司鏈接,你可以在點擊打開按鈕之前簡單地選擇網(wǎng)頁瀏覽器中的鏈接条摸。
步驟5-從細節(jié)頁面中提取內(nèi)容
現(xiàn)在我們在一個公司的細節(jié)頁面上悦污,我們想要配置這個項目從這個網(wǎng)頁中提取一些內(nèi)容。詳細信息頁面有兩個關于我們和產(chǎn)品和服務的信息標簽钉蒲。每個標簽后面的信息總是在網(wǎng)頁上切端,但是網(wǎng)頁會隱藏和顯示信息,這取決于你選擇的信息標簽顷啼。單擊選項卡不會觸發(fā)新的頁面加載或AJAX操作踏枣,因此我們不需要一個鏈接模板來處理選項卡昌屉。Visual Web Ripper不關心內(nèi)容是可見的還是隱藏的。它可以提取隱藏的內(nèi)容和可見的內(nèi)容茵瀑,因此我們可以簡單地點擊顯示感興趣的信息的選項卡间驮,然后開始標記我們想要提取的內(nèi)容。
產(chǎn)品和服務選項卡顯示一個包含關于酒店信息的表格马昨。我們想要提取酒店的評級竞帽。搜索結(jié)果中的所有酒店都有不同的信息顯示在桌子上;對于一家酒店來說,第一張表可能包含酒店的評級鸿捧,但對于另一家酒店來說屹篓,第一行可能包含完全不同的信息,比如設施笛谦。簡單地提取第一行的內(nèi)容并不總是提供酒店的評級抱虐。我們想要獲得酒店的評級,如果酒店的評級沒有被列出來饥脑,我們就不需要恳邀。
在提取酒店評級內(nèi)容時,遵循以下步驟使用文本過濾器:
1. 確保你在一個有酒店等級的細節(jié)頁面上灶轰。如果在搜索結(jié)果中沒有顯示酒店的等級谣沸,回到以前的模板,選擇不同的酒店笋颤,然后再打開鏈接模板乳附。
2. 在web瀏覽器中選擇酒店等級。
3. 右鍵單擊評級文本伴澄,選擇Filter赋除,然后選擇必須從上下文菜單中獲得文本評級。
4. 單擊New按鈕或右鍵單擊并從上下文菜單中選擇新內(nèi)容非凌。
步驟6-跟蹤頁面導航中的所有鏈接
搜索結(jié)果頁面只顯示了40家公司的頁面举农,因此整個搜索結(jié)果被分散到多個頁面上。我們想要為所有搜索結(jié)果頁面的所有公司提取數(shù)據(jù)敞嗡。該網(wǎng)站使用頁面導航條颁糟,允許用戶在搜索結(jié)果頁面之間進行導航。
我們將添加一個pagenavigation 導航模板喉悴,它將使用網(wǎng)頁導航欄中的下一個頁面鏈接來查找搜索結(jié)果中的所有頁面棱貌。
1. 返回到PageArea模板所在的模板。您可以使用Visual Web開膛手導航窗格中的Back按鈕來移動到先前的模板箕肃。
2. 單擊捕獲的元素窗口中的Template選項卡婚脱。這確保了我們使用的是模板而不是內(nèi)容。
3. 單擊web瀏覽器中的下一個頁面鏈接。要確保選擇鏈接而不是箭頭圖像起惕,右鍵單擊箭頭圖像涡贱,并從上下文菜單中選擇最近的鏈接。
4. 單擊New按鈕或右鍵單擊并從上下文菜單中選擇新模板惹想。
5. 確保模板類型設置為pagenavigation導航问词。
步驟7-導出提取的數(shù)據(jù)
現(xiàn)在,我們已經(jīng)為數(shù)據(jù)提取項目添加了模板和內(nèi)容嘀粱,我們想要配置如何保存提取的數(shù)據(jù)激挪。默認情況下,Visual Web Ripper的導出將數(shù)據(jù)提取到XML Excel格式锋叨,我們不希望改變這種輸出格式垄分。XML Excel格式類似于Excel 2003+的標準Excel文件,但有時像DreamWeaver這樣的其他應用程序可能會劫持這種格式娃磺。在這些情況下薄湿,您需要從Excel中打開輸出文件,或者簡單地將文件拖放到Excel中偷卧〔蛄觯或者,您可以右鍵單擊該文件听诸,選擇Open坐求。然后選擇Excel。
步驟8——運行數(shù)據(jù)采集項目
現(xiàn)在我們已經(jīng)準備好運行數(shù)據(jù)提取項目了晌梨。單擊Run Project工具欄按鈕來運行一個項目桥嗤。
單擊Stop按鈕以停止數(shù)據(jù)提取。您可以通過單擊view data按鈕查看已提取的數(shù)據(jù)仔蝌。
進階注意事項
您運行這個數(shù)據(jù)提取項目的時間較長時泛领,您會注意到它對前幾個搜索結(jié)果頁面的效果很好,但是在隨后的頁面中敛惊,它突然開始失效渊鞋。調(diào)試窗口將顯示表明不再找到PageArea模板的消息。
如果一個網(wǎng)站上有很多不同的頁面布局豆混,那么網(wǎng)頁抓取就變得困難了篓像。顯示第一頁搜索結(jié)果的網(wǎng)頁與顯示第三頁搜索結(jié)果的網(wǎng)頁很相似动知,但是有細微的差別對數(shù)據(jù)提取項目有很大的影響皿伺。
為了識別問題,我們需要導航到搜索結(jié)果的第三個頁面盒粮。我們這樣做是通過打開pagenavigation導航航模板三次鸵鸥。您將注意到,在搜索結(jié)果的第三頁上,PageArea模板的狀態(tài)圖標是黃色的妒穴,而不是綠色的宋税。這表明,PageArea的選擇不再有效讼油。
如果您編輯PageArea模板杰赛,web瀏覽器中沒有選擇任何內(nèi)容,因為選擇是無效的矮台。
要理解發(fā)生了什么乏屯,在web瀏覽器中重新創(chuàng)建PageArea選項。然后將新PageArea的XPath與舊的PageArea的XPath進行比較瘦赫。
//UL[@id='localListings']/LI[@class='gold mappableListing listingContainer omnitureListing']
//UL[@id='localListings']/LI[@class='gold_entry mappableListing listingContainer omnitureListing']
搜索結(jié)果行的類屬性不是相同的辰晕,所以第一個XPath不能在第3頁上工作,第二個XPath不能在第1頁上工作确虱。
解決這個問題有兩種方法含友。您可以單擊Set XPath手動按鈕手動編輯選擇XPath并刪除類屬性,因此您最終得到了這個XPath:
//UL[@id='localListings']/LI
或者校辩,您可以使用列表選項來創(chuàng)建PageArea列表模板窘问,而不是上下文菜單。按照以下步驟使用列表選項創(chuàng)建PageArea模板:
1. 在web瀏覽器中選擇第一行搜索結(jié)果召川。
2. 單擊列表選項選項卡南缓。
3. 檢查Create list選項。
4. 單擊OK按鈕以更新web瀏覽器中的選擇荧呐。
如果單擊XPath options選項卡汉形,您會注意到Visual Web Ripper已經(jīng)自動創(chuàng)建了以下XPath選擇:
//UL[@id='localListings']/LI
現(xiàn)在您可以再次運行數(shù)據(jù)提取項目了。它應該在所有的搜索結(jié)果頁面上工作倍阐。