目标
新建node3项目,当在浏览器中访问 http://localhost:3000/ 时,输出中国制造网(http://cn.made-in-china.com/nmEJVvWbTxcu-gongsi-1.html) 公司页面所有的公司和地址,以 json 的形式。 例如:
[{"comanyname":"江阴南侨机械铝业有限公司","href":"http://yancui555.cn.made-in-china.com"},
{"comanyname":"百销通高级版会员","href":"http://yancui555.cn.made-in-china.com"}]
内容
我们需要的依赖分别是 express,superagent 和 cheerio。 先介绍一下:
superagent(http://visionmedia.github.io/superagent/ ) 是个 http 方面的库,可以发起 get 或 post 请求。
cheerio(https://github.com/cheeriojs/cheerio ) 大家可以理解成一个 Node.js 版的 jquery,用来从网页中以 css selector 取数据,使用方式跟 jquery 一样一样的。
npm install name –save不再多说了。直接上代码了
var express=require('express');
var cheerio = require('cheerio');
var superagent = require('superagent');
//引入superagent-charset设置编码格式解决乱码问题。
require('superagent-charset')(superagent);
var app=new express();
app.get('/',function(req,res){
superagent.get('http://cn.made-in-china.com/nmEJVvWbTxcu-gongsi-1.html').charset('gbk')
.end(function(err,sres){
if(err){
return next(err);
}
var $ = cheerio.load(sres.text);
var items = [];
$('#inquiryForm a').each(function(i,n){
var $n=$(n);
items.push({
comanyname:$n.attr('title'),
href:$n.attr('href')
})
})
res.send(items);
})
});
app.listen(3000,function(req,res){
console.log("app runing at port 3000");
})