【Nodejs篇五】Node.js-使用 superagent 與 cheerio 完成簡單爬蟲

目標(biāo)

當(dāng)在瀏覽器中訪問 http://localhost:3000/ 時沃于,輸出 CNode(https://cnodejs.org/ ) 社區(qū)首頁的所有帖子標(biāo)題和鏈接,以 json 的形式海诲。

輸出示例:

[
 {
    "title": "【公告】發(fā)招聘帖的同學(xué)留意一下這里",
    "href": "http://cnodejs.org/topic/541ed2d05e28155f24676a12"
  },
  {
    "title": "發(fā)布一款 Sublime Text 下的 JavaScript 語法高亮插件",
    "href": "http://cnodejs.org/topic/54207e2efffeb6de3d61f68f"
  }
]

介紹

superagent(http://visionmedia.github.io/superagent/ ) 是個 http 方面的庫繁莹,可以發(fā)起 get 或 post 請求。
cheerio(https://github.com/cheeriojs/cheerio ) 大家可以理解成一個 Node.js 版的 jquery特幔,用來從網(wǎng)頁中以 css selector 取數(shù)據(jù)咨演,使用方式跟 jquery 一樣一樣的。

還記得我們怎么新建一個項目嗎蚯斯?
- 新建一個文件夾薄风,進(jìn)去之后 npm init
- 安裝依賴 npm install superagent cheerio express --save
- 寫應(yīng)用邏

eg:

const superagent = require('superagent');
const cheerio = require('cheerio');
const express = require('express');
var app = express();

app.get('/', function (req, res, next) {
  // 用 superagent 去抓取 https://cnodejs.org/ 的內(nèi)容
  superagent.get('https://cnodejs.org/')
    .end(function (err, sres) {
      // 常規(guī)的錯誤處理
      if (err) {
        return next(err);
      }
      // sres.text 里面存儲著網(wǎng)頁的 html 內(nèi)容零院,將它傳給 cheerio.load 之后
      // 就可以得到一個實現(xiàn)了 jquery 接口的變量,我們習(xí)慣性地將它命名為 `$`
      // 剩下就都是 jquery 的內(nèi)容了
      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);
    });
});

app.listen(3000,function() {
  console.log('開啟端口監(jiān)聽');
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末村刨,一起剝皮案震驚了整個濱河市告抄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嵌牺,老刑警劉巖打洼,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逆粹,居然都是意外死亡募疮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進(jìn)店門僻弹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阿浓,“玉大人,你說我怎么就攤上這事蹋绽“疟校” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵卸耘,是天一觀的道長退敦。 經(jīng)常有香客問我,道長蚣抗,這世上最難降的妖魔是什么侈百? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮翰铡,結(jié)果婚禮上钝域,老公的妹妹穿的比我還像新娘。我一直安慰自己锭魔,他們只是感情好例证,可當(dāng)我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赂毯,像睡著了一般战虏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上党涕,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天烦感,我揣著相機(jī)與錄音,去河邊找鬼膛堤。 笑死手趣,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绿渣,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼朝群,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了中符?” 一聲冷哼從身側(cè)響起姜胖,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淀散,沒想到半個月后右莱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡档插,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年慢蜓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郭膛。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡晨抡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出则剃,到底是詐尸還是另有隱情耘柱,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布忍级,位于F島的核電站帆谍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏轴咱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一烈涮、第九天 我趴在偏房一處隱蔽的房頂上張望朴肺。 院中可真熱鬧,春花似錦坚洽、人聲如沸戈稿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞍盗。三九已至,卻和暖如春跳昼,著一層夾襖步出監(jiān)牢的瞬間般甲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工鹅颊, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留敷存,地道東北人。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓堪伍,卻偏偏與公主長得像锚烦,于是被迫代替她去往敵國和親觅闽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 要想體驗 Node.js 強(qiáng)大的異步特性涮俄,爬蟲的場景就比較適合蛉拙。 目標(biāo) 使用 superagent 抓取網(wǎng)頁 使用...
    與蟒唯舞閱讀 1,503評論 1 2
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)彻亲,斷路器刘离,智...
    卡卡羅2017閱讀 134,699評論 18 139
  • 作為一個前端程序猿,下面這些站會讓你眼前一亮睹栖。 amazeui框架組建豐富 http://amazeui.org...
    歐巴冰冰閱讀 8,848評論 18 303
  • 使用superagent 和cheerio完成簡單點爬蟲 目的 訪問 http://localhost:3000 ...
    我該忘了我自己w_u閱讀 514評論 0 1
  • 所謂成功的人一定是受得了常人所不能受… 特種兵訓(xùn)練倒計時5天了硫惕,堅持就是勝利。在成功路上總會丟下很多人野来,她們不愿堅...
    珍珍_03b1閱讀 206評論 0 0