NodeJs+Request+Cheerio 采集数据

简介:

package.json文件:

复制代码
{
"name":"zqz",
"version":"1.0.1",
"private":false,
"dependencies":{
"request":"*",
"cheerio":"*"
}
}
复制代码

cdm中执行:npm install 进行安装依赖的2个包。

 

app.js文件:

复制代码
/**
* 数据采集
*/
//引入需要的包
var request = require('request');
var cheerio = require('cheerio');

//定义常量
var dolphin = 'http://cn.dolphin.com/blog';

//数据请求
function dataRequest(dataUrl) {
//发送请求
request({
url : dataUrl,
method : 'GET'
},function(err, red, body) {
//请求到body
if(err){
console.log(dataUrl);
console.error('[ERROR]Collection' + err);
return;
}

if(dataUrl && dataUrl === dolphin){
dataPraseDolphin(body);
}
})
}

/**
* 解析html
*/
function dataPraseDolphin(body) {

var $ = cheerio.load(body);

var atricles = $('#content').children('.status-publish');

for(var i = 0;i < atricles.length;i++){
var article = atricles[i];

var $a = $(article).find('.post-title .entry-title a');
var $p = $(article).find('.post-content p');

var $aVal = $($a).text();
var $pVal = $($p).text();

if($p)
{
console.info('--------------'+ (i+1) +' Chapter------------------');
console.info('标题:' + $aVal);
console.info('简介:' + $pVal);
console.info('时间:' + new Date)
console.info('---------------------------------------------------');
}
}
}

//开始发送请求 并 采集数据
dataRequest(dolphin);
复制代码

 

Sublime 中 ctrl+B 执行

结果:

 转载:http://www.cnblogs.com/zqzjs/p/5487348.html

目录
相关文章
|
4月前
|
数据采集 存储 JSON
利用Node.js实现拉勾网数据爬取
利用Node.js实现拉勾网案数据爬取
|
13天前
|
存储 缓存 监控
|
3月前
|
Web App开发 JavaScript 前端开发
一文搞懂:使用nodejs爬取和讯网高管增减持数据
一文搞懂:使用nodejs爬取和讯网高管增减持数据
151 0
|
3月前
|
数据采集 存储 JavaScript
深入Node.js:实现网易云音乐数据自动化抓取
深入Node.js:实现网易云音乐数据自动化抓取
|
4月前
|
存储 JSON JavaScript
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
|
4月前
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
77 0
|
4月前
|
SQL JavaScript 前端开发
【nodejs进阶之旅(2)】:使用koa2+mysql 实现列表数据分页
【nodejs进阶之旅(2)】:使用koa2+mysql 实现列表数据分页
179 0
|
4月前
|
JavaScript 关系型数据库 MySQL
如何去掉 node.js 获取MySQL数据产生的RowDataPacket
如何去掉 node.js 获取MySQL数据产生的RowDataPacket
|
9月前
【Node】—接收参数 插入数据 实现注册功能
【Node】—接收参数 插入数据 实现注册功能
|
11月前
|
JavaScript 前端开发 API
使用 Dynatrace 对 Node.js 应用的性能数据进行分析
使用 Dynatrace 对 Node.js 应用的性能数据进行分析