您好,登錄后才能下訂單哦!
Nodejs將JavaScript語言帶到了服務器端,作為js主力用戶的前端們,因此獲得了服務器端的開發能力,但除了用express搭建一個博客外,還有什么好玩的項目可以做呢?不如就做一個網絡爬蟲吧。據說互聯網上的流量90%以上都是爬蟲貢獻的,不知道真假,但起碼證明了,爬蟲是一種用途廣泛的東西,尤其在電商比價領域,整個就是爬蟲的技術較量,當然我要做的是爬蟲中的弱雞,只實現基本功能,先上源碼。
下面簡述一下實現過程。首先挑選爬取對象,這里選擇的也是門檻比較低的新聞站cnBeta.com,因為每天上午都要去逛一逛,比較熟悉,為什么說新聞站比較簡單呢,因為通常這類網站不要求用戶登錄,所有爬蟲的請求很容易偽造。
爬蟲的基本思路是,獲取頁面->構造信息選擇器->分析頁面鏈接->獲取相鄰頁面->循環第一步,對于新聞站來說,我們要獲取的就是新聞內容啦,請求到頁面html代碼后,只要從頁面中找到內容容器元素就很容易獲取到新聞內容,下一步是獲取相鄰頁面的地址,cnBeta新聞是有上一頁下一頁鏈接的,但仔細觀察會發現其實使用js動態生成的,這里需要找出js是如何獲取到鏈接的,拿到鏈接我們就繼續獲取下一篇新聞的html代碼,周而復始。
期間肯定不會一帆風順,比如就遇到了301跳轉,好在從請求頭中很容易找到了跳轉目標,發現301跳轉后立即放棄請求重新請求跳轉地址就好了。
另外,爬蟲不能無限制的爬取,否則很容易被封IP,需要設置一個爬取條數的限制。最好再做一個爬取間隔的設置,但這里只用作學習Nodejs,不會大量的爬取,因此也就沒必要做爬取間隔了。
詳細的分析過程見另一篇文章:http://refined-x.com/2017/06/09/Nodejs%E7%88%AC%E8%99%AB%E5%AE%9E%E8%B7%B5%E5%B0%8F%E8%AE%B0/。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。