1. 程式人生 > >Node實現簡單爬蟲

Node實現簡單爬蟲

1、新建一個專案

  • 新建一個資料夾
  • 安裝依賴 cnpm i --save PACKAGE_NAME
  • 寫應用邏輯

2、核心邏輯
實現爬蟲需要用到三個依賴,分別是expresssuperagentcheerio
superagent是個http方面的庫,可以發起get或post請求
cheerio可理解為Node.js版的jQuery,用來從網頁中以css selector取資料,使用方式跟 jquery 一樣的。
在這裡插入圖片描述

完整的程式碼如下

var express = require('express');
var superagent = require('superagent');
var charset = require("superagent-charset");
var cheerio = require('cheerio');

charset(superagent);

var app = express();
app.get('/', function (req, res, next) {
  // 用 superagent 去抓取 https://blog.csdn.net/ 的內容
  superagent.get('https://blog.csdn.net/')
    .end(function (err, sres) {
      // 常規的錯誤處理
      if (err) {
        return next(err);
      }
      // sres.text 裡面儲存著網頁的 html 內容,將它傳給 cheerio.load 之後
      // 就可以得到一個實現了 jquery 介面的變數,我們習慣性地將它命名為 `$`
      var $ = cheerio.load(sres.text);
      var items = [];
      $('.clearfix .list_con  .title h2 a').each(function (idx, element) {
        var $element = $(element);
        items.push({
          title: $element.text().trim(),
          href: $element.attr('href')
        });
      });

      res.send(items);
    });
});

app.listen(3001, function () {
    console.log('app is listenling at port 3001');
});

結果:
在這裡插入圖片描述

superagent教程
cheerio教程