输出 CNode(https://cnodejs.org/ ) 社区首页的全部帖子标题和连接,以 json 的形式。css
安装依赖 express,superagent 和 cheeriohtml
$ npm install express superagent cheerio --save
superagent是个
http 方面的库,能够发起 get 或 post 请求。 https://cnodejs.org/topic/5378720ed6e2d16149fa16bdnode
一个简单的post
请求,并设置请求头信息的例子jquery
request .post('/api/pet') .send({ name: 'Manny', species: 'cat' }) .set('X-API-Key', 'foobar') .set('Accept', 'application/json') .end(function(res){ if (res.ok) { alert('yay got ' + JSON.stringify(res.body)); } else { alert('Oh no! error ' + res.text); } });
一个简单的get
请求git
request .get('/search') .end(function(res){ });
请求方法也能够经过参数传递:github
request('GET', '/search').end(callback);
delete
,head
,post
,put
和别的http
动做均可以使用,来换个方法看看:express
request .head('/favicon.ico') .end(function(res){ });
delete
是一个特列,由于它是系统保留的关键字,因此应该用.del()
这个名字:npm
request .del('/user/1') .end(function(res){ });
http
请求默认的方法为get
,因此就像你看到的,下面的这个例子也是可用的:json
request('/search', function(res){ });
你们能够理解成一个 Node.js 版的 jquery,用来从网页中以 css selector 取数据,使用方式跟 jquery 同样的。api
https://github.com/cheeriojs/cheerio
// 引入依赖 var express = require('express'); var superagent = require('superagent'); var cheerio = require('cheerio'); var app = express(); 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 = []; var tt = null; $('#topic_list .topic_title').each(function(index, elem) { var $element = $(elem); items.push({ title: $element.attr('title'), href: $element.attr('href'), }); }); res.send(items); }); }); app.listen(3000, function (req, res) { console.log('app is running at port 3000'); });