// 模块导入 var express = require('express');//导入express 模块 const utility = require('utility');//提供了不少经常使用且比较杂的辅助方法,如 utility.md5() md5算法,用来加密 var superagent = require('superagent');//是个 http 方面的库,能够发起 get 或 post 请求。 var cheerio = require('cheerio'); //Node.js 版的 jquery,用来从网页中以 css selector 取数据,使用方式跟 jquery 同样同样的。 var app = express();//建立一个express实例 这样app上就有express中的各类方法了。如 get post put delete app.get('/',function(req,res){ superagent.get('https://cnodejs.org/').end(function(error,sres){ if(error){ return next(error); } // sres.text 存放着爬取的html内容 var $ = cheerio.load(sres.text);//将它传给 cheerio.load 以后 就能够获得一个实现了 jquery 接口的变量,咱们习惯性地将它命名为 `$` var jsonObj = []; $('#topic_list .cell').each(function(index,item){ item = $(item); var name = item.find('.user_avatar img').attr('title') var url = item.find(".topic_title").attr("href"); var title = item.find(".topic_title").attr("title"); jsonObj.push({"name":name,"url":url,"title":title}); }) res.send(jsonObj); }) }) // 监听端口 app.listen(3000,function(){ console.log('成功'); })
呀哈,使用node 作一个简单的爬虫。用到的模块:superagent 和 cheerio。css