627
gooseeker集搜客
把信息與連續動作步驟對應起來—以58同城分類采集為例
一、操作步驟
想要把抓到的信息與動作步驟一一對應起來,就得把動作對象的信息也提取下來。本教程適用於懸浮、點擊、雙擊、提交等四種動作,講解如何把其動作對象的節點值給抓取下來;滾屏、打碼、回退和滾輪則是沒有準確的值,而輸入動作和選擇動作的值是爬蟲默認抓取的,並且會自動記錄在xml文件的actionvalue字段中,所以這六個動作的值就不用特意去抓了。
下麵以58同城的北京小區的網頁為例,講解自動點擊區域裏的兩級目錄,這樣就形成了分類采集,如果想要把采到的信息與目錄一一對應起來,可以通過連續動作的高級設置或者在整理箱裏自定義xpath來實現。
注意:如果每個分類目錄都有獨立網址的情況,做層級采集是最簡單的采集方法,沒有獨立網址的情況,隻能用連續動作來實現了。
二、案例規則+操作步驟
- 第一級規則:五八同城-點擊目錄
- 第一級樣本網址:https://bj.58.com/xiaoqu/1142/?PGTID=0d011138-0000-165d-a070-e39726df9547&ClickID=1
- 第一級采集內容:隨意抓一個標誌信息
- 第二級規則:五八同城-分類采集
- 第二級樣本網址:https://bj.58.com/xiaoqu/1142/?PGTID=0d011138-0000-165d-a070-e39726df9547&ClickID=1
- 第二級采集內容:小區、價格、位置、鏈接
第一步:打開網頁
1.1,打開GS爬蟲瀏覽器,輸入網址並Enter,加載出網頁後再點擊“定義規則”按鈕,看到一個浮窗顯示出來,稱為工作台,在上麵輸入第一級主題名,點擊“查重”通過後就可以標注想采集的網頁信息;
注意:這裏的截圖和文字說明都是GS爬蟲瀏覽器版 ,如果您安裝的是火狐插件版,那麼就沒有“定義規則”按鈕,而是應該運行MS謀數台。
第二步:定義第一級規則
2.1,標注想采的信息
本級規則主要是設置連續動作,所以,整理箱裏可以隨意抓取一個標誌信息,用來給爬蟲判斷是否執行采集。雙擊網頁上的信息,輸入標簽名,並打勾確認,然後勾上關鍵內容。首次標注還要輸入整理箱的名字。
2.2,設置連續動作
2.2.1,點擊連續動作窗口,在“目標主題名”輸入第二級主題名,點擊“誰在用”看看是否重複。本案例要點擊兩級目錄,所以下麵要設置兩個點擊動作,第一個點擊動作用於大區域的點擊,第二個點擊動作用來點擊子區域。
2.2.2,先建立第一個“點擊”動作。由於 “顯示xpath”功能自動生成的xpath隻能定位到一個區域節點,本案例是要點擊一級目錄上的每一個區域,所以自動生成的xpath就不適用了,需要自己編寫出能定位到每一個點擊對象的xpath表達式。把自己寫的xpath輸入到xpath搜索框,再點擊“搜索”,檢查定位到的節點數量是否準確,然後填到“定位表達式”方框 裏,最後,填寫“動作名稱”,便於識別和修改。
2.2.3,參照步驟2.2.2的操作,繼續建立第二個“點擊”動作,寫出能夠定位到第二級目錄每一個子區域的xpath,然後填到“定位表達式”方框裏,最後填上“動作名稱”
2.3,保存規則
完成上麵的操作後,就可以點擊“保存規則”了。
第三步:定義第二級規則
3.1,新建第二級規則
3.1.1,首先要點擊“規則”菜單->新建,清空整個工作台。
3.1.2,然後點擊“定義規則”恢複到普通瀏覽模式,此時點擊網頁上的目錄,進入分類目錄下的頁麵,拿它做為樣本網頁。
3.1.3,再次點擊“定義規則”,開始做新規則。
3.1.4,這裏第二級規則的主題名是輸入前麵連續動作裏指定的目標主題名。
3.2,標注想采的信息
3.2.1,雙擊想要采集的網頁信息,在彈窗裏輸入標簽名,然後打勾確認,就可以完成標注映射了。不懂操作的請參考教程《采集網頁數據》。
3.2.2,想把一整頁上每一條小區信息都采集下來,就要找到第一個和第二個小區的整塊節點做樣例複製映射,詳細操作參考教程《采集列表數據》。
3.2.3,做翻頁設置,去爬蟲路線窗口新建“記號線索”,用於自動翻頁采集,不懂的請看入門教程《設置翻頁采集》。
3.3,保存規則
測試沒有問題,就可以保存規則。
第四步:抓數據
4.1,連續動作是連貫執行的,隻要運行第一級主題,第二級主題就會自動運行。所以,在DS打數機裏搜索出第一級主題,點擊“單搜”/“集搜”按鈕,就會看到瀏覽器會按順序點擊網頁上的兩級目錄,然後翻頁采集數據。
4.2,第一級主題沒有抓取有效信息,所以,我們隻看第二級主題的數據表,如上圖所示,這次采集是沒有把目錄和采集到的小區信息一一對應起來的,因為前麵沒有做相關的設置,下麵第五步會講到如何抓目錄信息以及對應關係。請參考教程《xml轉excel》來轉換格式。
第五步:把連續動作與采到的信息對應起來
5.1,通過連續動作的高級設置的內容表達式,把動作對象的值提取到actionvalue中
最開始說過,選擇動作和輸入動作的值是默認記錄在xml文件的actionvalue字段中,所以,也可以用actionvalue來記錄懸浮、點擊、雙擊、提交這四種動作的值。這裏是對第一級主題裏的連續動作設置,操作如下:
5.1.1,打開高級設置,在“內容表達式”裏填上xpath,然後點擊“保存”。這個xpath是相對“定位表達式”方框裏的xpath來寫的,因為連續動作的“定位表達式”已經定位到了動作對象的節點,也包括本身節點的值,所以,內容表達式隻要以定位表達式為起點路徑,在它的基礎上繼續定位到動作對象的值就行,通常是text()或者是屬性節點。
5.1.2,參照步驟5.1.1的操作,對第二個“點擊”動作也做高級設置。
5.1.3,最後保存規則。
5.1.4,再次采集一遍,就會看到第二級主題的數據表中,如上圖所示,actionvalue字段已經記錄了點擊對象的值,用-+-隔開了各個連續動作的值,與之對應的是actionno,記錄的是該步動作執行的次數。
5.2,在整理箱中抓取動作對象的信息,通過自定義xpath來實現
網頁上被點擊過的按鈕,它的顯示樣式明顯是不一樣的。根據這點差異,可以在最後一級主題的整理箱裏建立對應的抓取內容,用自定義xpath的方法就可以把點擊對象的值抓下來,可以參考教程《自定義xpath:精確采集》。這裏是對第二級主題進行設置,操作方法如下:
5.2.1,在整理箱裏建立新的標簽,用來抓點擊對象的信息。
5.2.2,定位點擊對象,然後右擊節點,做內容映射給“大區域”標簽。
5.2.3,再用“顯示xpath”功能,找到能唯一定位到點擊對象的xpath,如果不合適,就自己寫出xpath。
5.2.4,雙擊“大區域”標簽,彈出高級設置窗口,選擇文本內容和專用定位。
5.2.5,在抓取內容表達式上填xpath,在定位標誌表達式上填點 . 就行。
5.2.6,參照前麵的步驟操作,以同樣的方法對“子區域”標簽設置自定義xpath。
5.2.7,點擊整理箱的測試按鈕,看看是否能抓到對應的點擊信息,然後保存規則。
5.2.8,再次采集一遍,打開第二級主題的數據表,如上圖所示,就可以看到對應的目錄信息。
上篇文章:《連續動作:滾屏采集瀑布流網頁》 下篇文章:《如何找到合適的連續動作組合》
若有疑問可以或

最後更新:2017-01-09 14:08:12