基本思路
思路一(origin:master):從維基百科的某個分類(比如:航空母艦(key))頁面開始,找出鏈接的title屬性中包含key(航空母艦)的所有目標,加入到待抓取隊列中。這樣,抓一個頁面的代碼及其圖片的同時,也獲取這個網頁上所有與key相關的其它網頁的地址,采取一個類廣度優先遍歷的算法來完成此任務。
思路二(origin:cat):按分類進行抓取。注意到,維基百科上,分類都以Category:開頭,由于維基百科有很好的文檔結構,很容易從任一個分類,開始,一直把其下的所有分類全都抓取下來。這個算法對分類頁面,提取子分類,且并行抓取其下所有頁面,速度快,可以把分類結構保存下來,但其實有很多的重復頁面,不過這個可以后期寫個腳本就能很容易的處理。
庫的選擇
開始想用jsdom,雖然感覺它功能強大,但也比較“重”,最要命的是說明文檔不夠好,只說了它的優勢,沒一個全面的說明。因此,換成cheerio,輕量級,功能比較全,至少文檔一看就能有一個整體概念。其實做到后來,才發現根本不需要庫,用正則表達式就能搞定一切!用庫只是少寫了一點正則而矣。
關鍵點
全局變量設定: