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

时间: 2022-12-15

NodeJs+Request+Cheerio 采集数据的相关文章

NodeJs+http+fs+request+cheerio 采集,保存数据,并在网页上展示(构建web服务器)

目的: 数据采集 写入本地文件备份 构建web服务器 将文件读取到网页中进行展示 目录结构: package.json文件中的内容与上一篇一样:NodeJs+Request+Cheerio 采集数据 request :https://github.com/request/request 使得请求变得更容易,简单 cheerio:https://github.com/cheeriojs/cheerio 用来解析dom结构,类似jQuery,挺好用 app.js文件: /** * 数据采集 * 写入

node.js-Node.js + request + cheerio 爬取数据出现问题

问题描述 Node.js + request + cheerio 爬取数据出现问题 我在用node爬取数据,用了request模块和cheerio模块,我在获取到了一个url后,用数组获取到了该url下的分页(假设为1-10),但是当打印数据后,发现只获取到了分页1下的数据 for (var i = data.start; i <= data.end; i++) { var newUrl; if ( i == 1 ) { newUrl = data.url; } else { newUrl =

Python基于scrapy采集数据时使用代理服务器的方法_python

本文实例讲述了Python基于scrapy采集数据时使用代理服务器的方法.分享给大家供大家参考.具体如下: # To authenticate the proxy, #you must set the Proxy-Authorization header. #You *cannot* use the form http://user:pass@proxy:port #in request.meta['proxy'] import base64 proxy_ip_port = "123.456.7

Python使用scrapy采集数据时为每个请求随机分配user-agent的方法_python

本文实例讲述了Python使用scrapy采集数据时为每个请求随机分配user-agent的方法.分享给大家供大家参考.具体分析如下: 通过这个方法可以每次请求更换不同的user-agent,防止网站根据user-agent屏蔽scrapy的蜘蛛 首先将下面的代码添加到settings.py文件,替换默认的user-agent处理模块 复制代码 代码如下: DOWNLOADER_MIDDLEWARES = {     'scraper.random_user_agent.RandomUserAg

flume到hdfs写入问题-flume采集数据到hdfs性能问题

问题描述 flume采集数据到hdfs性能问题 本人目前遇到flume采集写入hdfs性能等各种问题,大致如下.在10上的xx/xx目录下的数据进行读取 sink到08上的flume 由08上的flume写到07的hdfs上 30多m的文件写了好久.有时候会内存溢出等问题 Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 Describe/configure the source a1

测量-c# 使用线程采集数据只能采集一部分

问题描述 c# 使用线程采集数据只能采集一部分 我想用一个电机带动平台转动,然后平台上有个传感器采集数据,所以建立了2个线程,一个负责电机的驱动以及传感器的开关,另一个就是专门采集数据的.可是每次采集到的数据在20000多的时候就采集不了了.下面附上代码,我确实没想到原因,开始以为是延时的问题,后来在第二个线程开始加了1ms的延时,还是不行. //定义旋转所需时间 public static double PTime; //定义旋转所需脉冲.采样到的点数 public int ringpulse

asp采集数据并自动判断网页编码并转换

在做采集的朋友就会知道经常会碰到采集过来的内容是乱码,下面我们就来看一篇关于asp教程采集数据并自动判断网页编码并转换吧. <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <

[置顶]C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel,是真尼玛的累,虽然那个时候C#还很菜,也想能不能通过程序来批量获取(所以平时想法要多才好).几经周折,终于发现了HtmlAgilityPack神器,这几年也用HtmlAgilityPack采集了很多类型数据,特别是足球赛事资料库的数据采集以及天气数据采集,都是使用HtmlAgilityPack,所以

Flume安装部署,采集方案配置文件编写案例,启动agent采集数据

1.2 Flume实战案例 1.2.1 Flume的安装部署 1.Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 上传安装包到数据源所在节点上 然后解压 tar -zxvf apache-flume-1.6.0-bin.tar.gz,最终解压到的位置是:/home/tuzq/software/apache-flume-1.6.0-bin 然后进入flume的目录,修改conf下的flume-env.sh,在里面配置JAVA_HOME 2.根据数据采集的需求配置采集方案