我的编程空间,编程开发者的网络收藏夹
学习永远不晚

node+express制作爬虫教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

node+express制作爬虫教程

最近开始重新学习node.js,之前学的都忘了。所以准备重新学一下,那么,先从一个简单的爬虫开始吧。

什么是爬虫

百度百科的解释:

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

通俗一点讲:

把别人网站的信息给弄下来,弄到自己的电脑上。然后再做一些过滤,比如筛选啊,排序啊,提取图片啊,链接什么的。获取你需要的信息。

如果数据量很大,而且你的算法又比较叼,并且可以给别人检索服务的话,那么你的爬虫就是一个小百度或者小谷歌了

什么是robots协议

了解完什么是爬虫之后,我们再来了解一下爬虫的协议了,也就是哪些东西才已去爬。

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。 

robots.txt文件是一个文本文件,它是一个协议,而不是一个命令。它是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。

当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;

如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。百度官方建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。

如果将网站视为酒店里的一个房间,robots.txt就是主人在房间门口悬挂的“请勿打扰”或“欢迎打扫”的提示牌。这个文件告诉来访的搜索引擎哪些房间可以进入和参观,哪些房间因为存放贵重物品,或可能涉及住户及访客的隐私而不对搜索引擎开放。但robots.txt不是命令,也不是防火墙,如同守门人无法阻止窃贼等恶意闯入者。

环境搭建

需要的环境:node环境

需要安装的东西: express、require、cherrio

可以在这里找到模块的用法:https://www.npmjs.com,直接输入模块名字即可,比如:require

1、express这里就不做介绍了,中文网址在这里,可以查看:http://www.expressjs.com.cn/

2、request模块让http请求变的更加简单。最简单的一个示例:


var express = require('express');
var app = express();

app.get('/', function(req, res){
 res.send('hello world');
});

app.listen(3000);

安装:npm install request

3、cherrio 是为服务器特别定制的,快速、灵活、实施的jQuery核心实现。

通过cherrio,我们就可以将抓取到的内容,像使用jquery的方式来使用了。可以点击这里查看:https://cnodejs.org/topic/5203a71844e76d216a727d2e


var cheerio = require('cheerio'),
$ = cheerio.load('<h2 class="title">Hello world</h2>');
$('h2.title').text('Hello there!');

安装:npm install cherrio

爬虫实战

假设你的电脑里已经安装好了node和express。那么我们现在开始进行我们的爬虫小程序:

1、首先随便进入一个硬盘,假如是F盘,cmd环境下执行: express mySpider

然后你发觉你的F盘上多了一个 mySpider的文件夹和一些文件,进入文件,cmd下执行 npm install

2、然后安装我们的require ==》npm installrequire --save 、再安装我们的cherrio==》npm install cherrio --save

3、安装好后,执行npm start,如果想监听窗口的变化,可以执行:supervisor start app.js,然后在浏览器输入:localhost:3000,这样我们就可以在浏览器看到express的一些欢迎语啊什么的

4、打开app.js文件,你会发觉里面有一大堆东西,因为是爬虫小程序嘛,所以都是不需要滴,删,在express的API里有这段代码,粘贴在app.js里面

app.js


var express = require('express');
var app = express();

app.get('/', function(req, res){
 res.send('hello world');
});

app.listen(3000);

5、我们的require登场了。继续修改一下app.js改为:


var express = require('express');
var app = express();
var request = require('request');

app.get('/', function(req, res){
 request('http://www.cnblogs.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    res.send('hello world');
  }
 })
});
app.listen(3000);

其中request的链接就是我们要爬的网址,加入我们要爬的是博客园的网站,所以输入的是博客园的网址

6、引入cherrio,来让我们可以操做爬到的网站的内容,继续修改一下app.js


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', function (error, response, body) {
  if (!error && response.statusCode == 200) {
   //返回的body为抓到的网页的html内容
   var $ = cheerio.load(body); //当前的$符相当于拿到了所有的body里面的选择器
   var navText=$('.post_nav_block').html(); //拿到导航栏的内容
   res.send(navText);
  }
 })
});
app.listen(3000);

我们抓到的内容都返回到了request的body里面。cherrio可以获取所有的dom选择器。假如我们要获取导航的内容:ul的class为:post_nav_block

查看图片

然后我们就可以将里面的内容显示出来了:

查看图片

这个说明,我们的爬虫小程序就成功了。当然,这是一个简单的不能再简单的爬虫了。不过今天的文章就暂时介绍到这里,只是大概了解一下爬虫的过程而已。

接下来的第二篇文章会对这个爬虫进行升级,改版。比如异步啦,并发啦,定时去爬啦等等。

代码地址:https://github.com/xianyulaodi/mySpider

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

node+express制作爬虫教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

node+express制作爬虫教程

最近开始重新学习node.js,之前学的都忘了。所以准备重新学一下,那么,先从一个简单的爬虫开始吧。 什么是爬虫 百度百科的解释: 爬虫即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬
2022-06-04

基于node.js制作简单爬虫教程

前言:最近想学习node.js,突然在网上看到基于node的爬虫制作教程,所以简单学习了一下,把这篇文章分享给同样初学node.js的朋友。 目标:爬取 http://tweixin.yueyishujia.com/webapp/build
2022-06-04

python制作爬虫爬取京东商品评论教程

本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化。下面是要抓取的商品信息,一款女士文胸。这个商品共有红色,黑色和肤色三种颜色, 70B到90D共18个尺寸,以及超过700条的购买评论
2022-06-04

NodeJS制作爬虫全过程

今天来学习alsotang的爬虫教程,跟着把CNode简单地爬一遍。 建立项目craelr-demo 我们首先建立一个Express项目,然后将app.js的文件内容全部删除,因为我们暂时不需要在Web端展示内容。当然我们也可以在空文件夹下
2022-06-04

Python爬虫教程-01-爬虫介绍

Python 爬虫的知识量不是特别大,但是需要不停和网页打交道,每个网页情况都有所差异,所以对应变能力有些要求参考资料精通Python爬虫框架Scrapy,人民邮电出版社url, httpweb前端,html,css,jsajaxre,xp
2023-01-30

NodeJS制作爬虫全过程(续)

书接上回,我们需要修改程序以达到连续抓取40个页面的内容。也就是说我们需要输出每篇文章的标题、链接、第一条评论、评论用户和论坛积分。 如图所示,$('.reply_author').eq(0).text().trim();得到的值即为正确的
2022-06-04

Python爬虫教程-34-分布式爬虫介

Python爬虫教程-34-分布式爬虫介绍分布式爬虫在实际应用中还算是多的,本篇简单介绍一下分布式爬虫什么是分布式爬虫分布式爬虫就是多台计算机上都安装爬虫程序,重点是联合采集。单机爬虫就是只在一台计算机上的爬虫。其实搜索引擎都是爬虫,负责从
2023-01-30

node+express+jade制作简单网站指南

1.建立工程文件夹:my_jade 2.下载express和jade包到本地.我个人不喜欢下载成全局的,我喜欢下到工程文件夹中去. 3.建立相关的文件夹和文件.index.js:style.cssgys.jade代码:index.jade:
2022-06-04

Python爬虫教程-28-Seleni

我觉得本篇是很有意思的,闲着没事来看看!PhantomJS 幽灵浏览器,无界面浏览器,不渲染页面。Selenium + PhantomJS 在之前是很完美的搭配。后来在 2017 年 Google 宣布 Chrome 也宣布支持不渲染。所以
2023-01-31

python爬虫踩坑教程

我们的目标是爬取下面这个个网址上的2010~2018年的数据http://stockdata.stock.hexun.com/zrbg/Plate.aspx?date=2015-12-31获取我们需要的表格中的某些列的数据​(这是我从我的微
2023-01-31

使用Python的urllib和urllib2模块制作爬虫的实例教程

urllib 学习python完基础,有些迷茫.眼睛一闭,一种空白的窒息源源不断而来.还是缺少练习,遂拿爬虫来练练手.学习完斯巴达python爬虫课程后,将心得整理如下,供后续翻看.整篇笔记主要分以下几个部分:1.做一个简单的爬虫程序2.小
2022-06-04

Python爬虫学习教程:天猫商品数据爬虫

天猫商品数据爬虫使用教程下载chrome浏览器查看chrome浏览器的版本号,下载对应版本号的chromedriver驱动pip安装下列包pip install seleniumpip install pyquery登录微博,并通过微博绑定
2023-06-02

python爬虫教程:爬取酷狗音乐

在常见的几个音乐网站里,酷狗可以说是最好爬取的啦,什么弯都没有,也没加密啥的,所以最适合小白入门爬虫本篇针对爬虫零基础的小白,所以每一步骤我都截图并详细解释了,其实我自己看着都啰嗦,归根到底就是两个步骤的请求,还请大佬绕路勿喷。1、打开酷狗
2023-01-31

Python制作爬虫采集小说

开发工具:python3.4 操作系统:win8 主要功能:去指定小说网页爬小说目录,按章节保存到本地,并将爬过的网页保存到本地配置文件。 被爬网站:http://www.cishuge.com/ 小说名称:灵棺夜行 代码出处:本人亲自码的
2022-06-04

node+express+ejs制作简单页面上手指南

1.建立工程文件夹my_ejs. 2.首先利用npm install express和npm install ejs 下载这两个家伙.至于要不要设置成全局的,看习惯,我习惯性的下载到本项目中的文件夹中my_ejs. 然后建立相应的文件:in
2022-06-04

Nodejs爬虫进阶教程之异步并发控制

之前写了个现在看来很不完美的小爬虫,很多地方没有处理好,比如说在知乎点开一个问题的时候,它的所有回答并不是全部加载好了的,当你拉到回答的尾部时,点击加载更多,回答才会再加载一部分,所以说如果直接发送一个问题的请求链接,取得的页面是不完整的。
2022-06-04

Python制作爬虫抓取美女图

作为一个新世纪有思想有文化有道德时刻准备着的?潘磕星嗄辏?谙衷谡庋?桓錾缁嶂校?奶畚掖舐?サ种拼蟀俣鹊那疤嵯拢?皇露?仙贤?涔?Y看看斗鱼翻翻美女图片那是必不可少的,可是美图虽多翻页费劲!今天我们就搞个爬虫把美图都给扒下来!本次实例有2个:
2022-06-04

编程热搜

目录