217
gooseeker集搜客
連續動作:自動選擇下拉菜單采集數據—以知網為例
一、操作步驟
用中國知網的期刊為例,展示連續動作中選擇動作和爬蟲路線中翻頁的組合。本次教程要實現的是先檢索2016年發表的期刊,再對檢索結果進行采集,流程如下圖所示:
為了實現這個,需要建立兩級規則,第一級規則通過連續動作來自動選擇發表年份,第二級規則負責采集期刊內容和翻頁。操作步驟如下:
二、案例規則+操作步驟
- 第一級采集規則:中國知網期刊檢索前
- 第二級采集規則:中國知網期刊檢索後
- 樣本網址:https://epub.cnki.net/kns/brief/result.aspx?dbprefix=CJFQ
- 采集內容:每一篇文獻的標題、作者、刊名、年期、被引、下載
第一步:定義第一級規則抓取內容
1.1,加載頁麵
打開GS爬蟲瀏覽器,輸入網址並按Enter鍵,看到瀏覽器加載出網頁後,點擊右上方的“定義規則”。
注意:這裏的截圖和文字說明都是GS爬蟲瀏覽器版。如果您安裝的是火狐插件版,那麼就沒有“定義規則”按鈕,而是應該運行MS謀數台。
1.2,輸入主題名
在工作台“主題名”處輸入第一級規則的主題名,再點擊“查重”,提示“該名可以使用”,就可以繼續,否則請重新命名。這裏命名主題名為“中國知網期刊檢索前”。
Tips:雖然這一級規則主要是為了做選擇動作,但為了保證頁麵已經加載完成,連續動作可以順利進行,通常在這級規則建立一些抓取內容。
1.3,內容映射
選擇“期刊”作為抓取內容,雙擊期刊,在彈出的標簽欄處輸入關鍵內容,整理箱命名為檢索前,並勾選為關鍵內容。直觀標注的基礎操作在這裏不贅述,不懂的請參考教程《采集網頁數據》。
第二步:定義第一級規則連續動作
2.1,輸入目標主題名
點擊“連續動作”工作台,輸入目標主題名(也就是第二級規則的主題名,這裏命名為“中國知網期刊檢索後”),點擊“誰在用”,彈出的窗口沒有信息,說明這個主題名沒有被占用,可以繼續後麵的操作,否則就需要換一個主題名。
2.2,創建第一個連續動作——起始年份選擇2016
2.2.1,找到定位表達式,填寫動作名稱
點擊新建,選擇動作類型為“選擇”,點擊一下起始年份,會自動定位到相應節點,選擇“顯示XPath:偏好id”,程序會自動顯示對應的Xpath路徑,再點擊搜索,可以看到這個路徑能找到唯一的節點,可作為動作的定位表達式,將這個路徑複製到定位表達式處,在動作名稱寫上文字,是為了方便清楚每個動作的用處。
Tips:選擇類型的連續動作,定位表達式必須寫到select節點,而不能寫到option節點,否則運行時會報錯。
2.2.2,高級設置
我們需要實現的是采集2016年發表的期刊,所以需要在起始年份和終止年份都選擇點擊2016年,這就需要在連續動作的高級設置裏做約束。
- 額外延時:這裏填2秒,表示做完這個動作後延遲2秒再去做第二個動作,是為了避免動作做得太快而頁麵還沒做出反應導致采集失敗。
- 起點:起始年份對應的select節點下有42個option,其中第41個option對應的就是2016年的選項,所以需要在高級設置裏起點填41(表示第一次做動作時就選擇第41個option)。
- 跨度:跨度填10(表示下一次動作的位置跟這一次動作相差10個節點,即下一次去選擇第51個option,實際上並不存在第51個option,因為這裏隻需要選擇2016年,所以這樣設置之後,程序在選擇了2016年後找不到下一次動作的節點,就會停止動作)。
2.3,創建第二個連續動作——終止年份選擇2016
點擊新建,選擇動作類型為“選擇”。參考步驟2.2找到終止年份對應的Xpath路徑,並在高級設置中設置額外延時為2秒,起點為3(2016在第3個option),跨度填100。
2.4,創建第三個連續動作——點擊檢索
點擊新建,選擇“提交”動作。參考步驟2.2找到“檢索”對應的Xpath路徑,並在高級設置中設置額外延時為2秒。
2.5,存規則
點擊“存規則”按鈕保存已完成的第一級規則。
第三步:定義第二級規則抓取內容
3.1,新建規則
點擊“定義規則”恢複到普通網頁模式,選擇2016年並點擊檢索搜索出文獻結果後,再次點擊“定義規則”切換到做規則模式,點擊左上角“規則”菜單->“新建”,彈出提示“工作台上有內容,清空嗎?”,點擊確定。
輸入主題名,這裏的主題名就是上一級規則的連續動作那裏填寫的目標主題名,也就是“中國知網期刊檢索後”,點擊查重,彈出提示“該名已被預定。可編輯:是”,說明這個主題名可以使用。
3.2,標注要采集的信息
在頁麵直接點擊要采集的內容,彈出的窗口填上名稱,給“標題”勾上關鍵內容,並做上樣例複製。點擊測試可以預覽采集內容。直觀標注的詳細說明在這裏不贅述,詳細可參考教程《采集網頁數據》。
第四步:定義第二級規則翻頁線索
4.1,設置翻頁線索
點擊爬蟲路線,點擊“新建”,選擇“記號線索”;找到翻頁標記“下一頁”對應的節點,右擊-線索映射-記號線索;找到包含整個翻頁區域並且有class值或id值的節點,右擊-線索映射-定位-線索1。設置翻頁的操作在這裏不贅述,詳細可參考教程《設置翻頁采集》。
4.2,存規則
點擊“存規則”按鈕保存已完成的第二級規則。
第五步:抓數據
連續動作的兩級規則是連貫執行的,所以隻需要運行第一級規則,做完動作後程序會自動調用第二級規則。直接運行第二級規則就會報錯,因為打開的是執行動作前的初始頁麵。
5.1,打開打數機,找到第一級規則的主題名,點擊“單搜”或“集搜”,可以看到打數機的網頁窗口會自動選擇2016年,並不斷往下翻頁。
5.2,打開第二級主題的文件夾查看結果數據,在xml文件的actionvalue字段記錄了選擇的條目,這樣就能與結果數據一一對應起來。
上篇文章:《連續動作:自動搜索關鍵詞采集信息》 下篇文章:《連續動作:滾屏采集瀑布流網頁》
若有疑問可以或

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