nodejs爬虫系统

- 其中express是服务端框架
- request相当于前端的ajax请求
- cheerio相当于jq

var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send('hello express');
});
app.listen(3000, function() {
console.log('listening on 3000');
});

var express = require('express');
var app = express();
var request = require('request');
app.get('/', function(req, res) {
request('http://www.cnblogs.com/galenyip', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);// Show the HTML for the Google homepage.
res.send('hello express');
}
});
});
app.listen(3000, function() {
console.log('listening on 3000');
});
地址修改成我的博客地址吧。来爬爬我这个博客
OK,刷新我们的页面。等一会,会看到终端打印出了html相关信息。
接着,
我们用上 cheerio
在app.js中 我们就入 var cherrio = require('cherrio');
var express = require('express');
var app = express();
var request = require('request');
var cheerio = require('cheerio');
app.get('/', function(req, res) {
request('http://www.cnblogs.com/galenyip', function (error, response, body) {
if (!error && response.statusCode == 200) {
$ = cheerio.load(body); //拿到body,作为选择器
}
});
});
app.listen(3000, function() {
console.log('listening on 3000');
});
同时,我们可以看到 cheerio.load(body)就是我们拿到的页面,把它作为总的选择器。
之后的,我们就可以像操作jq一样操作这个页面了。
具体的api可以到官网:
https://www.npmjs.com/package/cheerio
它的api跟jq很像,那这个就不做介绍了
其实,我们的整个爬虫就差不多了。
剩下的就是看客们根据自己的需要,去抓取页面的dom,筛选等等等等。。。。
好了。
大体就这么多了。
有不懂的,或者纰漏的,大家可以在评论里面交流拍砖。
nodejs爬虫系统的更多相关文章
- NodeJS爬虫系统初探
NodeJS爬虫系统 NodeJS爬虫系统 0. 概论 爬虫是一种自动获取网页内容的程序.是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上是针对爬虫而做出的优化. robots.txt是一个文本文 ...
- nodejs爬虫--抓取CSDN某用户全部文章
最近正在学习node.js,就像搞一些东西来玩玩,于是这个简单的爬虫就诞生了. 准备工作 node.js爬虫肯定要先安装node.js环境 创建一个文件夹 在该文件夹打开命令行,执行npm init初 ...
- 【nodejs 爬虫】使用 puppeteer 爬取链家房价信息
使用 puppeteer 爬取链家房价信息 目录 使用 puppeteer 爬取链家房价信息 页面结构 爬虫库 pupeteer 库 实现 打开待爬页面 遍历区级页面 方法一 方法二 遍历街道页面 遍 ...
- NodeJS 爬虫爬取LOL英雄联盟的英雄信息,批量下载英雄壁纸
工欲善其事,必先利其器,会用各种模块非常重要. 1.模块使用 (1)superagent:Nodejs中的http请求库(每个语言都有无数个,java的okhttp,OC的afnetworking) ...
- Nodejs爬虫进阶教程之异步并发控制
Nodejs爬虫进阶教程之异步并发控制 之前写了个现在看来很不完美的小爬虫,很多地方没有处理好,比如说在知乎点开一个问题的时候,它的所有回答并不是全部加载好了的,当你拉到回答的尾部时,点击加载更多,回 ...
- 用python3.x与mysql数据库构建简单的爬虫系统(转)
这是在博客园的第一篇文章,由于本人还是一个编程菜鸟,也写不出那些高大上的牛逼文章,这篇文章就是对自己这段时间学习python的一个总结吧. 众所周知python是一门对初学编程的人相当友好的编程语言, ...
- nodejs爬虫——汽车之家所有车型数据
应用介绍 项目Github地址:https://github.com/iNuanfeng/node-spider/ nodejs爬虫,爬取汽车之家(http://www.autohome.com.cn ...
- nodejs爬虫笔记(三)---爬取YouTube网站上的视频信息
思路:通过笔记(二)中代理的设置,已经可以对YouTube的信息进行爬取了,这几天想着爬取网站下的视频信息.通过分析YouTube,发现可以从订阅号入手,先选择几个订阅号,然后爬取订阅号里面的视频分类 ...
- nodejs爬虫笔记(二)---代理设置
node爬虫代理设置 最近想爬取YouTube上面的视频信息,利用nodejs爬虫笔记(一)的方法,代码和错误如下 var request = require('request'); var chee ...
随机推荐
- php学习笔记--高级教程--读取文件、创建文件、写入文件
打开文件:fopen:fopen(filename,mode);//fopen("test.txt","r"): 打开模式:r 仅仅读方式打开,将文件指针指向 ...
- jdk阅读xml文件
前言 你需要阅读的时间来写一个通用组件xml文件,但考虑到组件分布更容易,这样一来在第三方小引用jar包.因此,直接jdk内建的xml分析方法.可能都没有第三发的组件强大. 导入的文件: import ...
- spring 配置属性的详细信息
摘要(这篇文章讲的红,蓝说这话节) 字面值 字面值:可用字符串表示的值,能够通过<value>元素标签或value属性进行注入 基本数据类型及其封装类.String等类型都能够採取字面值注 ...
- Directx11学习笔记【十】 画一个简单的三角形
本篇笔记要实现的是在屏幕上渲染出一个三角形,重点要学习的是渲染一个几何体的流程方式. 为了渲染几何图形,需要一个顶点缓存和一个描述顶点布局的输入层,还有着色器(主要是顶点着色器和像素着色器),下面来看 ...
- Fuel 5.1安装openstack I版本号环境
声明:本博客欢迎转载,但请保留原作者信息! 作者:傅斌杰 团队:华为杭州OpenStack团队 Fuel 简单介绍 Fuel是Mirantis公司开发的部署openstack集群工具,主要功能为裸机P ...
- crm创建基于fetch自己的自定义报告
在解决方案资源管理器,右键点击"报表"目录.然后点击"增加了新的报告". 打开"报表向导". 在"欢迎来到报表向导"前, ...
- CI-持续集成(2)-软件工业“流水线”技术实现(转)
1 概述 持续集成(Continuous Integration)是一种软件开发实践.在本系列文章的前一章节已经对其背景及理论体系进行了介绍.本小节则承接前面提出的理论构想进行具体的技术实现. & ...
- DM8168 新三板系统启动
DM8168从补丁到系统的新董事会开始折腾了20天,最终完成,高校是累的东西,导师只焊接机10一个BGA,其他人则手. 前段时间启动操作系统时,到了Starting Matrix GUI applic ...
- Cocos2d-x Auto-batching 浅浅的”深入分析”
Auto-batching是Cocos2d-x3.0新增的特性,目的是为了代替SpriteBatchNode,完毕渲染的批处理,提高绘制效率. 至于它有什么特点,能够看看官方文档,这里主要想探讨Aut ...
- RFC 协议下载方法
rfc官方网站:http://tools.ietf.org 举例说明: RFC7230是HTTP 1.1协议,此文档的URL为:http://tools.ietf.org/html/rfc7230 你 ...