iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >基于node.js怎么制作简单爬虫
  • 657
分享到

基于node.js怎么制作简单爬虫

2023-06-17 07:06:57 657人浏览 八月长安
摘要

这篇文章主要讲解了“基于node.js怎么制作简单爬虫”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于node.js怎么制作简单爬虫”吧!目标:爬取 Http://tweixin.yuey

这篇文章主要讲解了“基于node.js怎么制作简单爬虫”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于node.js怎么制作简单爬虫”吧!

目标:爬取 Http://tweixin.yueyishujia.com/WEBapp/build/html/ 网站的所有门店发型师的基本信息。

思路:访问上述网站,通过chrome浏览器的network对网页内容分析,找到获取各个门店发型师的接口,对参数及返回数据进行分析,遍历所有门店的所有发型师,直到遍历完毕,同事将信息存储到本地。

步骤一:安装node.js

下载并安装node,此步骤比较简单就不详细解释了,有问题的可以直接问一下度娘。

步骤二:建立工程

1)打开dos命令条,cd进入想要创建项目的路径(我将此项目直接放在了E盘,以下皆以此路径为例);

2)mkdir node (创建一个文件夹用来存放项目,我这里取名为node);

3)cd 进入名为node的文件夹,并执行npm init初始化工程(期间会让填写一些信息,我是直接回车的);

步骤三:创建爬取到的数据存放的文件夹

1)创建data文件夹用来存放发型师基本信息;

2)创建image文件夹用来存储发型师头像图片;

  此时工程下文件如下: 

基于node.js怎么制作简单爬虫

步骤四:安装第三方依赖包(fs是内置模块,不需要单独安装)

1)npm install cheerio –save

2)npm install superagent –save

3)npm install async –save

4)npm install request –save

分别简单解释一下上面安装的依赖包:

cheerio:nodejs的抓取页面模块,为服务器特别定制的,快速、灵活、实施的Jquery核心实现,则能够对请求结果进行解析,解析方式和jQuery的解析方式几乎完全相同;

superagent:能够实现主动发起get/post/delete等请求;

async:async模块是为了解决嵌套金字塔,和异步流程控制而生,由于nodejs是异步编程模型,有一些在同步编程中很容易做到的事情,现在却变得很麻烦。Async的流程控制就是为了简化这些操作;

request:有了这个模块,http请求变的超简单,Request使用简单,同时支持https和重定向; 

步骤五:编写爬虫程序代码

打开hz.js,编写代码:

var superagent = require('superagent'); var cheerio = require('cheerio');var async = require('async');var fs = require('fs');var request = require('request');var page=1; //获取发型师处有分页功能,所以用该变量控制分页var num = 0;//爬取到的信息总条数var storeid = 1;//门店IDconsole.log('爬虫程序开始运行......');function fetchPage(x) {   //封装函数  startRequest(x); }function startRequest(x) {  superagent    .post('http://tweixin.yueyishujia.com/v2/store/designer.JSON')    .send({       // 请求的表单信息FORM data      page : x,       storeid : storeid    })      // Http请求的Header信息    .set('Accept', 'application/json, text/javascript, */*; q=0.01')    .set('Content-Type','application/x-www-form-urlencoded; charset=UTF-8')    .end(function(err, res){           // 请求返回后的处理      // 将response中返回的结果转换成JSON对象      if(err){        console.log(err);      }else{        var designJson = JSON.parse(res.text);        var deslist = designJson.data.designerlist;        if(deslist.length > 0){          num += deslist.length;          // 并发遍历deslist对象          async.mapLimit(deslist, 5,             function (hair, callback) {            // 对每个对象的处理逻辑               console.log('...正在抓取数据ID:'+hair.id+'----发型师:'+hair.name);               saveImg(hair,callback);            },             function (err, result) {              console.log('...累计抓取的信息数→→' + num);            }          );          page++;          fetchPage(page);        }else{          if(page == 1){            console.log('...爬虫程序运行结束~~~~~~~');            console.log('...本次共爬取数据'+num+'条...');            return;          }          storeid += 1;          page = 1;          fetchPage(page);        }      }    });} fetchPage(page);function saveImg(hair,callback){  // 存储图片  var img_filename = hair.store.name+'-'+hair.name + '.png';  var img_src = 'http://photo.yueyishujia.com:8112' + hair.avatar; //获取图片的url  //采用request模块,向服务器发起一次请求,获取图片资源  request.head(img_src,function(err,res,body){    if(err){      console.log(err);    }else{        request(img_src).pipe(fs.createWriteStream('./image/' + img_filename));   //通过流的方式,把图片写到本地/image目录下,并用发型师的姓名和所属门店作为图片的名称。        console.log('...存储id='+hair.id+'相关图片成功!');    }  });  // 存储照片相关信息  var html = '姓名:'+hair.name+'<br>职业:'+hair.jobtype+'<br>职业等级:'+hair.jobtitle+'<br>简介:'+hair.simpleinfo+'<br>个性签名:'+hair.info+'<br>剪发价格:'+hair.cutmoney+'元<br>店名:'+hair.store.name+'<br>地址:'+hair.store.location+'<br>联系方式:'+hair.telephone+'<br>头像:<img src='+img_src+' >';  fs.appendFile('./data/' +hair.store.name+'-'+ hair.name + '.html', html, 'utf-8', function (err) {    if (err) {      console.log(err);    }  });  callback(null, hair);}

步骤六:运行爬虫程序

输入node hz.js命令运行爬虫程序,效果图如下:

基于node.js怎么制作简单爬虫

运行成功后,发型师基本信息以html文件的形式存储在data文件夹中,发型师头像图片存储在image文件夹下:

基于node.js怎么制作简单爬虫

基于node.js怎么制作简单爬虫

感谢各位的阅读,以上就是“基于node.js怎么制作简单爬虫”的内容了,经过本文的学习后,相信大家对基于node.js怎么制作简单爬虫这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 基于node.js怎么制作简单爬虫

本文链接: https://www.lsjlt.com/news/287723.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 基于node.js怎么制作简单爬虫
    这篇文章主要讲解了“基于node.js怎么制作简单爬虫”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于node.js怎么制作简单爬虫”吧!目标:爬取 http://tweixin.yuey...
    99+
    2023-06-17
  • 基于node.js如何制作简单爬虫
    这篇文章主要为大家展示了“基于node.js如何制作简单爬虫”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于node.js如何制作简单爬虫”这篇文章吧。目标:...
    99+
    2024-04-02
  • Node.js简单实现爬虫代码怎么写
    以下是一个简单的Node.js爬虫代码示例: const request = require('request'); const c...
    99+
    2023-10-26
    Node.js
  • node.js简单爬虫的方法是什么
    这篇文章主要介绍“node.js简单爬虫的方法是什么”,在日常操作中,相信很多人在node.js简单爬虫的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”node.js简单爬虫的方法是什么”的疑惑有所...
    99+
    2023-07-04
  • 关于python简单的爬虫操作(requests和etree)
    虎扑体育-NBA球员得分数据排行 第1页  示例代码: import requests from lxml import etree url = 'https://n...
    99+
    2023-05-16
    python爬虫 爬虫操作requests 爬虫etree
  • node.js实现简单爬虫示例详解
    目录node.js实现简单爬虫第一步第二步爬虫结果小结:node.js实现简单爬虫 工具:cheerio cheerio 是 nodejs 特别为服务端定制的,能够快速灵活的对 JQ...
    99+
    2023-05-17
    node.js简单爬虫 node.js爬虫
  • Node.js怎么制作简单聊天室
    这篇“Node.js怎么制作简单聊天室”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Node.js怎么制作简单聊天室”文章吧...
    99+
    2023-06-17
  • node.js做一个简单的爬虫案例教程
    准备工作 首先,你需要下载 nodejs,这个应该没啥问题吧 原文要求下载 webstrom,我电脑上本来就有,但其实不用下载,完全在命令行里面操作就行 创建工程...
    99+
    2024-04-02
  • 如何实现node.js基于cheerio的爬虫工具
    这篇文章主要介绍如何实现node.js基于cheerio的爬虫工具,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先上代码'use strict'; //&n...
    99+
    2024-04-02
  • 基于Python怎么制作简单的井字棋游戏
    基本框架from tkinter import * import tkinter.messagebox as msg root = Tk() root.title('井字棋') # labels L...
    99+
    2023-05-19
    Python
  • 怎么创建基于Python的爬虫
    这篇文章主要介绍“怎么创建基于Python的爬虫”,在日常操作中,相信很多人在怎么创建基于Python的爬虫问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么创建基于Python的爬虫”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • 怎么用.net core 实现简单爬虫
    本篇内容主要讲解“怎么用.net core 实现简单爬虫”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用.net core 实现简单爬虫”吧!一.介绍一个Http请求框架HttpCode.C...
    99+
    2023-06-19
  • 怎么使用Java IO流和网络制作一个简单的图片爬虫
    这篇文章主要介绍“怎么使用Java IO流和网络制作一个简单的图片爬虫”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Java IO流和网络制作一个简单的图片爬虫”文章能帮助大家解决问题。Ja...
    99+
    2023-07-05
  • 基于Python的简单40例和爬虫详细讲解(文末赠书)
    目录 先来看看Python40例 学习Python容易坐牢?  介绍一下什么是爬虫 1、收集数据 来源地址:https://blog.csdn.net/m0_64122244/article/details/130165155...
    99+
    2023-08-31
    python java 开发语言
  • 基于Python制作简单的井字棋游戏
    目录前言基本框架定义button功能实现效果前言 五一放假了,今天还要继续内卷。我们今天来给大家写一个小游戏,无聊的时候可以玩一玩摸摸鱼。 基本框架 from tkinter imp...
    99+
    2023-05-18
    Python实现井字棋游戏 Python实现井字棋 Python井字棋
  • 基于Vue3制作简单的消消乐游戏
    目录游戏介绍核心思路核心代码htmljs游戏开始/循环删除下落添加生成矩阵/数据点击换位置游戏介绍 先看一下 好吧,我知道界面有点丑 →_→ 核心思路 游戏步骤...
    99+
    2024-04-02
  • 使用JavaIO流和网络制作一个简单的图片爬虫
    目录Java IO流和网络的简单应用Java IO 流和 URL 类Java IO流URL 类Java 爬虫ClientDataProcessUtilDownLoadUtilWind...
    99+
    2023-05-14
    JavaIO流 网络 JavaIO流爬虫 图片爬虫
  • Node.js如何制作简单聊天室
    小编给大家分享一下Node.js如何制作简单聊天室,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!示例代码如下:var ...
    99+
    2024-04-02
  • 基于Python3制作一个带GUI界面的小说爬虫工具
    目录效果图开发完成后的界面采集过程界面采集后存储主要功能用到的第三方模块打包为 exe 命令全部源码效果图 最近帮朋友写个简单爬虫,顺便整理了下,搞成了一个带GUI界面的小说爬虫工具...
    99+
    2024-04-02
  • Python爬虫怎么突破反爬虫机制
    这篇文章主要介绍“Python爬虫怎么突破反爬虫机制”,在日常操作中,相信很多人在Python爬虫怎么突破反爬虫机制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python爬虫怎么突破反爬虫机制”的疑惑有所...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作