我是靠谱客的博主 活力小霸王,最近开发中收集的这篇文章主要介绍nodeJs爬取图片,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简单的nodeJs爬取图片 小样例

1、新建node项目

npm init -y
-y 的含义:yes的意思,在init的时候省去了敲回车的步骤,生成的默认的package.json

2、安装模块

爬取图片所需要的模块

  • request request模块让http请求变的更加简单。(作为客户端,去请求、抓取另一个网站的信息)
  • cheerio cheerio 是一个 jQuery Core 的子集,其实现了 jQuery Core 中浏览器无关的 DOM 操作 API
    request cheerio 需要npm 下载
  • fs 自带 操作文件读写

3、编写抓取图片代码

1、新建 app.js

//引入模块
const cheerio = require('cheerio');
const fs = require('fs');
const request = require('request');

// 获取页面信息
function start(url) {
    request(url, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            findImg(body, saveImgFile);
        }
    })
}
// url 为页面的url
start('url')

// 页面节点解析
function findImg(dom,callback) {
 let $ = cheerio.load(dom);
//  页面节点 找到img 标签 each 循环
 $('img').each((index,dom)=>{
 let imgSrc = $(dom).attr('src');
 // 获取图片路径
 callback(imgSrc,index);
 })
}

function saveImgFile(src, index) {
    console.log(src,index)
    let ext = src.split('.').pop() //图片类型 png jpg  pop() 方法用于删除并返回数组的最后一个元素。
    let imgName = index + '.' + ext
    // if (src.indexOf('http') < 0) src = 'http:' + src
    // src 路径需确保为完整路径
    // 新建pic 文件夹 保存到文件夹下
    request(src).pipe(fs.createWriteStream('./pic/' + imgName)) // 下载文件到本地
}

// 调用start  url 为页面的url
start('http://www.netbian.com/index.htm')

目录 :page.json ,app.js ,pic文件夹

2、运行

node app.js

注:最最简单的图片抓取方法,大部分页面都支持

最后

以上就是活力小霸王为你收集整理的nodeJs爬取图片的全部内容,希望文章能够帮你解决nodeJs爬取图片所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部