NodeJs编写小爬虫

一,爬虫及Robots协议

爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。

robots.txt是一个文本文件,robots是一个协议,而不是一个命令。robots.txt是爬虫要查看的第一个文件。robots.txt文件告诉爬虫在服务器上什么文件是可以被查看的,搜索机器人就会按照该文件中的内容来确定访问的范围。

如上图,我们可以在网站中直接访问robots.txt文件查看网站禁止访问和允许访问的文件。

二,使用NodeJs爬去网页需要安装的模块

Express

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

中文API:http://www.expressjs.com.cn/

Request

简化了http请求。

API:https://www.npmjs.com/package/request

Cheerio

以一种类似JQ的方式处理爬取到的网页。

API:https://www.npmjs.com/package/cheerio

这三个模块在安装NodeJs 之后,可以使用npm命令进行安装。

三,简单爬取网页示例

var express = require(‘express‘);
var app = express();
var request = require(‘request‘);
var cheerio = require(‘cheerio‘);
app.get(‘/‘, function(req, res){
    request(‘http://blog.csdn.net/lhc1105‘, function (error, response, body) {
      if (!error && response.statusCode == 200) {
        $ = cheerio.load(body);//当前的$,它是拿到了整个body的前端选择器
      console.log($(‘.user_name‘).text()); //我博客的获取用户名
      }else{
         console.log("思密达,没爬取到用户名,再来一次");
      }
})
});
app.listen(3000);

之后,

然后在浏览器中访问:http://localhost:3000/,就能看到输出的用户名。

感觉比python爬取方便点儿,主要是对网页元素解析上,省去了很多正则表达式。

by the way ,新年快乐~~~

时间: 2024-08-08 13:54:07

NodeJs编写小爬虫的相关文章

nodejs 之 小爬虫

一.简单的单页面 var http = require('http') var url = 'http://www.imooc.com/learn/348' http.get(url,function(res){ var html = '' //有data触发时 res.on('data',function(data){ html += data }) res.on('end',function(){ console.log(html) }) //出现异常时 }).on('error',func

用NodeJs做一个小爬虫

作者:北京起步科技前端研究员,专注分享HTML5 App快速开发工具 WeX5 的黑魔法以及相应的前端技术. 前言 利用爬虫可以做很多事情,单身汉子们可以用爬虫来收集各种妹子情报,撩妹族们可以用爬虫收集妹子想要的小东西,赚大钱的人可以用来分析微博言论与股票涨跌的关系诸如此类的,简直要上天了. 你们感受一下 点我点我: 蠢蠢欲动 抛开机器学习这种貌似很高大上的数据处理技术,单纯的做一个爬虫获取数据还是非常简单的.对于前段er们来说,生在有nodejs的年代真是不要太幸福了,下面就用nodejs来做

HTTP小爬虫 ,nodejs学习(二)

使用nodejs抓取网页数据,这里用到cheerio,解析html十分好用,和jquery用法完全一致. 首先安装cheerio,在命令行中输入 npm install cheerio;(在nodejs根目录下输入该命令) 安装完成以后,我们来解析慕课网上http://www.imooc.com/learn/348,获取其上的课程信息. 代码如下: var http = require('http'); var cheerio = require('cheerio'); var url = 'h

nodejs .http模块, cheerio模块 实现 小爬虫.

代码: 1 var http = require("http"); 2 3 var cheerio = require("cheerio"); 4 5 6 var url = 'http://www.imooc.com/learn/348'; 7 8 9 http.get(url, function(res){ 10 var html = ''; 11 12 res.on('data', function(data){ 13 html += data; 14 });

爬虫入门实战,知乎小爬虫

相比于爬虫框架,知乎小爬虫,更加适合初学者,尤其是想要了解爬虫技术细节.实现自己编写爬虫需求的初学者. 1. 谈爬虫工程师的价值 大数据时代已到,数据越来越具有价值了,没有数据寸步难行,有了数据好好利用,可以在诸多领域干很多事,比如很火的互联网金融.从互联网上爬来自己想要的数据,是数据的一个重要来源,而且往往是必不可少的来源.所有,目前,爬虫工程师是一个非常吃香的职位,工资往往都不低,就是要耐得住寂寞了.那爬虫工程师的价值也就是能稳定的.高效的和实时的带来数据.这里推荐看两篇文章: http:/

http 小爬虫

初学nodejs写一个http小爬虫,爬虫就是把网页上的代码爬下来. 代码: var http = require('http') //加载http模块var url = 'http://www.imooc.com/learn/713' http.get(url,function(res){   //get去请求url,此处以慕课网为例 var html = '' res.on('data',function(data){ html += data     //请求数据赋值给前面定义的html

Java豆瓣电影爬虫——小爬虫成长记(附源码)

以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码.当然,nutch对于爬虫考虑的是十分全面和细致的.每当看到屏幕上唰唰过去的爬取到的网页信息以及处理信息的时候,总感觉这很黑科技.正好这次借助梳理Spring MVC的机会,想自己弄个小爬虫,简单没关系,有些小bug也无所谓,我需要的只是一个能针对某个种子网站能爬取我想要的信息就可以了.有Exception就去解决,可能是一些API使用不当,也可能是遇到了http请求状态异常,又或是数据库读写有问题,就是在这

Python爬虫——第一个小爬虫01

Python小爬虫——贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. 目标: 首先肯定要实现图片抓取这个基本功能 然后要有一定的交互,程序不能太傻吧 最后实现对用户所给的链接进行抓取 一.页面获取 要让python可以进行对网页的访问,那肯定要用到urllib之类的包.So先来个 import urllib urllib中有 urllib.urlopen(str) 方法用于打开网页并返回一个对象,调用这个对象的read()方法后能直接获得网页的源代码,内容与

一次使用NodeJS实现网页爬虫记

前言 几个月之前,有同事找我要PHP CI框架写的OA系统.他跟我说,他需要学习PHP CI框架,我建议他学习大牛写的国产优秀框架QeePHP. 我上QeePHP官网,发现官方网站打不开了,GOOGLE了一番,发现QeePHP框架已经没人维护了.API文档资料都没有了,那可怎么办? 毕竟QeePHP学习成本挺高的.GOOGLE时,我发现已经有人把文档整理好,放在自己的个人网站上了.我在想:万一放文档的个人站点也挂了, 怎么办?还是保存到自己的电脑上比较保险.于是就想着用NodeJS写个爬虫抓取需