NodeJs+Request+Cheerio 采集数据

目的:采集网站文章。

两个依赖项:

request :https://github.com/request/request

cheerio:https://github.com/cheeriojs/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 执行

结果:

时间: 2024-08-30 12:15: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文件: /** * 数据采集 * 写入

nodeJS(request+cheerio+pump)稳定爬取SSR网页数据

记录自己的爬虫经验 本次是爬取某SSR网站列表页及详情页数据,包括文本及图片,将数据存入MongoDB数据库,将图片下载至本地: 首先呢,用到的nodeJS模块有: request: 用于请求网址内容或请求图片内容 cheerio: 通俗的讲,可以当做jQuery使用 pump: 一种管道,操纵数据流,比原生的pipe好用,可操控性强,具体用法可去npm查询 path: 读取操作文件路径 fs: 操作文档读写等 第一步:引入需要用到的相关模块,建议用yarn安装以下模块 const reques

c#正则表达式采集数据

protected void Page_Load(object sender, EventArgs e){ StringBuilder MyStringBuilder = new StringBuilder(); WebRequest request = WebRequest.Create("http://www.dahuatech.com/news.aspx?type=1002"); WebResponse response = request.GetResponse(); Stre

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

转自原文C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 阅读目录 1.HtmlAgilityPack简介 2.XPath技术介绍与使用 3.采集天气网站案例 4.资源 第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel,是真尼玛的累,虽然那个时候C#还很菜,也想能不能通过程序来批量获取(所以平时想法要多才好).几

基于PHP采集数据入库程序(二)

在上篇基于PHP采集数据入库程序(二) 中提到采集新闻信息页的列表数据,接下来讲讲关于采集新闻具体内容 这是上篇博客的最终数据表截图: 接下来要做的操作就是从数据库中读取所需要采集的URL,进行页面抓取就行 新建一个content表 不过需要注意的一点是,不能再采用采集URL这种id递增的方法去采集,因为数据表中可能出现id断续,比如id=9,id=11,当采集到id=10的时候,URL是空白的,这样可能会导致采集到了空字段. 这里用到的一个技巧是数据库的查询语句,在我们采集完第一条数据的时候,

nodejs 通过 get获取数据修改redis数据

如下代码是没有报错的正确代码 我通过https获取到数据 想用redis set一个键值存储 现在我掉入了回调陷阱res.on 里面接收到的数据是data 里面如果放入 client.on('connect',functi ...这个修改函数就会报错. 'use strict'; var redis = require('redis'), RDS_PORT = 6379, //端口号 RDS_HOST = '127.0.0.1', //服务器IP //RDS_PWD = 'porschev',

使用ScrapySharp快速从网页中采集数据

转自原文 使用ScrapySharp快速从网页中采集数据 ScrapySharp是一个帮助我们快速实现网页数据采集的库,它主要提供了如下两个功能 从Url获取Html数据 提供CSS选择器的方式解析Html节点 安装: ScrapySharp可以直接从Nuget上下载,直接从Package Console里面输入如下命令即可: PM> Install-Package ScrapySharp Html下载 首先我们来看看它的Html下载功能,它是通过ScrapingBrowser类来实现的: va

Flume简介与使用(二)——Thrift Source采集数据

Flume简介与使用(二)——Thrift Source采集数据 继上一篇安装Flume后,本篇将介绍如何使用Thrift Source采集数据. Thrift是Google开发的用于跨语言RPC通信,它拥有功能强大的软件堆栈和代码生成引擎,允许定义一个简单的IDL文件来生成不同语言的代码,服务器端和客户端通过共享这个IDL文件来构建来完成通信. Flume的Thrift Source是其实现的众多Source中的一个,Flume已经实现了服务器端,因此我们可以用任意自己熟悉的语言编写自己的Th

[PHP自动化-进阶]001.模拟登录并采集数据

引言:PHP可以通过libcurl实现模拟登录,提交数据,违法乱纪,烧杀抢虐等等事项. 简单说明一下"libcurl",补一下脑: libcurl目前支持http.https.ftp.gopher.telnet.dict.file和ldap协议. libcurl同时也支持 HTTPS认证.HTTP POST.HTTP PUT. FTP 上传(这个也能通过PHP的FTP扩展完成).HTTP 基于表单的上传.代理.cookies和用户名+密码的认证. 使用curl可以实现Get和Post请