如何用nodejs開發爬蟲程序?

安裝必要的模塊:

Express

基於Node.js平台,快速、開放、極簡的 web 開發框架。它提供一系列強大的特性,幫助你創建各種 Web 和移動設備應用。

Request

簡化HTTP請求的處理,支持OAuth的簽名請求,很好很強大。

Cheerio

為伺服器特別定製的,快速、靈活、實施的jQuery核心實現,像操作dom一樣操作抓取文本。

mysql

node下的mysql資料庫連接模塊,存儲抓取數據。

核心邏輯:

app.get("/", function (req, res, next) {

// 用 superagent 去抓取 https://cnodejs.org/ 的內容

superagent.get("https://cnodejs.org/")

.end(function (err, sres) {

// 常規的錯誤處理

if (err) {

return next(err);

}

// sres.text 裡面存儲著網頁的 html 內容,將它傳給 cheerio.load 之後

// 就可以得到一個實現了 jquery 介面的變數,我們習慣性地將它命名為 `$`

// 剩下就都是 jquery 的內容了

var $ = cheerio.load(sres.text);

var items = [];

$("#topic_list .topic_title").each(function (idx, element) {

var $element = $(element);

items.push({

title: $element.attr("title"),

href: $element.attr("href")

});

});

res.send(items);

});

});

demo:https://github.com/alsotang/node-lessons/tree/master/lesson3



Coding Dojo在2017年末發布了2018年最具就業前景的幾大技術方向,分析數據來自就業網站 Indeed.com的25種編程語言、棧和框架。除去Java、Python、JavaScript、C++等七種老牌編程語言位居榜首外,Coding Dojo還將Node和MEAN列為開發人員最應該熟悉的技術。其中,Node.js在該分析數據中排行第十二位,MEAN全棧開發技術位列第十八。

開發者學習MEAN技術棧的必要性可見一斑,然而目前市面上講授MEAN全棧技術的圖書鳳毛麟角,幾乎全是國外著作或其譯本。《全棧開發之道》這本書則填補了這一空白:它緊跟技術前沿,實用性很強,而且簡明易懂,結合實例。

這本書最後一部分給出了四個應用實例,詳細講述了每個工程的實現思路與實現步驟,並且有重點或難點部分代碼解讀。該書思路清晰有條理,邏輯結構嚴密,可讀性強,很容易讓讀者順著作者的引導去思考、學習。作為本書的讀者之一,在實際練習了書中實例後,我也能舉一反三地自己做出一個小型管理系統了!

本書的另一優勢在於,相比網上的博客等資料,它更加系統化、結構化,幫我們省去了作為初學者篩選有效信息的時間和精力,同時為讀者深入學習奠定了基礎。

總而言之,我認為《全棧開發之道: MongoDB+Express+AngularJS+node.js 》這本書是MEAN全棧技術入門學習的不二之選!


推薦閱讀:

以GeeTest為例的滑動驗證碼破解 - 參數初探
JS try catch語句一般在什麼情況下使用?是必須使用的嗎?
像這樣的奇偶行背景色不同的代碼塊效果是怎樣設置的?
相比Angular,Avalon有什麼缺點呢?
js中return有什麼設計錯誤?

TAG:編程語言 | 編程 | 軟體開發 | Node.js | JavaScript |