Nodejs將JavaScript語言帶到了服務(wù)器端,作為js主力用戶的前端們,因此獲得了服務(wù)器端的開發(fā)能力,但除了用express搭建一個博客外,還有什么好玩的項目可以做呢?不如就做一個網(wǎng)絡(luò)爬蟲吧。據(jù)說互聯(lián)網(wǎng)上的流量90%以上都是爬蟲貢獻(xiàn)的,不知道真假,但起碼證明了,爬蟲是一種用途廣泛的東西,尤其在電商比價領(lǐng)域,整個就是爬蟲的技術(shù)較量,當(dāng)然我要做的是爬蟲中的弱雞,只實現(xiàn)基本功能,先上源碼。
下面簡述一下實現(xiàn)過程。首先挑選爬取對象,這里選擇的也是門檻比較低的新聞?wù)綾nBeta.com,因為每天上午都要去逛一逛,比較熟悉,為什么說新聞?wù)颈容^簡單呢,因為通常這類網(wǎng)站不要求用戶登錄,所有爬蟲的請求很容易偽造。
爬蟲的基本思路是,獲取頁面->構(gòu)造信息選擇器->分析頁面鏈接->獲取相鄰頁面->循環(huán)第一步,對于新聞?wù)緛碚f,我們要獲取的就是新聞內(nèi)容啦,請求到頁面html代碼后,只要從頁面中找到內(nèi)容容器元素就很容易獲取到新聞內(nèi)容,下一步是獲取相鄰頁面的地址,cnBeta新聞是有上一頁下一頁鏈接的,但仔細(xì)觀察會發(fā)現(xiàn)其實使用js動態(tài)生成的,這里需要找出js是如何獲取到鏈接的,拿到鏈接我們就繼續(xù)獲取下一篇新聞的html代碼,周而復(fù)始。
期間肯定不會一帆風(fēng)順,比如就遇到了301跳轉(zhuǎn),好在從請求頭中很容易找到了跳轉(zhuǎn)目標(biāo),發(fā)現(xiàn)301跳轉(zhuǎn)后立即放棄請求重新請求跳轉(zhuǎn)地址就好了。
另外,爬蟲不能無限制的爬取,否則很容易被封IP,需要設(shè)置一個爬取條數(shù)的限制。最好再做一個爬取間隔的設(shè)置,但這里只用作學(xué)習(xí)Nodejs,不會大量的爬取,因此也就沒必要做爬取間隔了。
詳細(xì)的分析過程見另一篇文章: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/。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前名稱:用Nodejs做一個簡單的小爬蟲-創(chuàng)新互聯(lián)
鏈接URL:http://chinadenli.net/article10/deeogo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、網(wǎng)站改版、品牌網(wǎng)站制作、微信公眾號、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容