有些網頁我們在采集時可能有加載更多或者再顯示20條等按鈕,需要點擊這些按鈕之后需要的數據才會完全顯示出來,對于這種類型的網頁,我們該如何解決并完整的采集出數據呢

?

本文的入口地址為:http://junyueshanyc.fang.com/dianping/

?

打開這個網頁之后可以看到頁面有再顯示20條這個按鈕,前面給大家講過手動創建翻頁循環的方法,其實這個網頁也是一樣的方法,我們把再顯示20條這個按鈕也手動做一個循環點擊。

?

1?

步驟一.選擇八爪魚中的再顯示20條這個按鈕,然后在操作提示中選擇點擊該鏈接。

?

2

?

打開流程圖,以上操作之后系統會自動添加一個點擊步驟到流程中。

?

更多1

?

點擊自定義,進入自定義定位方式界面,將下一頁的Xpath復制出來,然后把創建的點擊步驟刪除,因為我們讓系統自動創建點擊步驟只是為了得到下一頁的Xpath,如果是懂Xpath的朋友可以省掉這個步驟。

?

步驟二.接下來我們要創建循環點擊,先拖一個循環步驟到流程中,打開高級選項,勾選點擊單個元素,然后將之前復制的下一頁人Xpath填到單個元素輸入框中,點擊保存之后可以看到循環列表是再點擊20條這個內容。

?

更多2

?

步驟三.拖入一個點擊步驟到循環中,打開高級選項,勾選上點擊當前循環中設置的元素,點擊保存。

注意這個點擊元素涉及到了ajax,前面教程里面給大家講到了ajax的特征,也直接通過八爪魚瀏覽器下面的這個圈轉沒轉可以判斷這個網頁需不需要設置ajax。

?

更多3?

步驟四.接下來創建循環采集列表,循環采集流程如果在點擊元素下,應該將它拖到點擊之前,采集完成才進行點擊,如下圖所示:

?

更多4?

?

這個流程大家可以單機采集測試一下,可以看到原本只有135條評論,但是采集出來重復了420條。

?

注意這個流程其實就是錯誤的,這是為什么呢?大家可以手動點擊測試一下,第一次我們顯示的是20條評論,然后進行提取20條,然后再在流程里面點擊元素,可以看到這時候循環列表為40個,這之后再提取數據的話,就會提取剛剛已經提取過的那20條數據,如此循環下去,數據會一直重復。

?

對于這種類型的網頁,我們做的流程應該如下圖所示:即先把再顯示20條全部點完,讓所有評論加載完之后再循環提取評論

3?

做好之后我們再試著采集看看,可以看到這時候的數據就是正常采集下來無重復的了

?