21xrx.com
2024-09-20 00:57:22 Friday
登录
文章检索 我的文章 写文章
Node.js 图片爬虫教程
2023-06-28 19:06:24 深夜i     --     --
Node js 图片爬虫 教程 网络爬虫 图片下载

Node.js是一种基于Chrome V8引擎的JavaScript运行环境,其简单易用、高效稳定的特性让它成为开发者喜爱的技术之一。作为一个全栈开发者,我们常常需要使用Node.js来进行各种Web开发相关的操作,其中之一就是爬虫。本篇文章就来介绍一下Node.js图片爬虫的基本教程。

一、安装必要的依赖

在使用Node.js进行图片爬虫之前,我们需要安装一些必要的依赖包。其中核心的包是Cheerio和Request,它们可以帮助我们解析HTML页面和发起HTTP请求。具体的安装命令如下:


npm install cheerio

npm install request

二、分析网站

在进行图片爬虫之前,我们需要先分析目标网站的结构,找到我们所需要的图片链接。在本文中,我们以Bing图片为例。我们进入Bing图片首页,搜索相应的关键词后,可以看到许多美丽的图片。我们需要从页面中解析出图片的链接,然后进行下载。

三、编写代码

在分析完网站结构后,我们可以开始编写我们的Node.js图片爬虫程序。具体代码如下:


const request = require('request');

const cheerio = require('cheerio');

const fs = require('fs');

const path = require('path');

const search = 'cat'; // 设置搜索关键词

const page = 1; // 设置要爬取的页面数

// 封装请求函数

function requestUrl(url) {

 return new Promise((resolve, reject) => {

  request(url, function(error, response, body) {

   if(error || !body.trim()) {

    reject(error || 'No content');

   } else {

    resolve(body);

   }

  });

 });

}

// 开始爬虫

async function start() {

 try {

  // 循环爬取多个页面

  for(let i = 1; i <= page; i++) {

   console.log(`爬取第${i}页`);

   const url = `https://www.bing.com/images/search?q=${search}&first=${(i - 1) * 35}&mkt=zh-cn&FORM=HDRSC2`; // 设置请求链接

   const body = await requestUrl(url); // 发送请求,获取返回内容

   const $ = cheerio.load(body); // 将返回内容转化成Cheerio对象

   $('img').each(function() { // 遍历页面上的所有img标签

    const imgUrl = $(this).attr('src'); // 获取图片链接

    if(imgUrl && imgUrl.includes('http')) { // 过滤掉非http链接

     const arr = imgUrl.split('/');

     const filename = arr[arr.length - 1]; // 获取图片的文件名

     const dirPath = path.join(__dirname, search);

     // 创建目录

     if(!fs.existsSync(dirPath)) {

      fs.mkdirSync(dirPath);

     }

     const filePath = path.join(dirPath, filename);

     // 下载图片

     request(imgUrl).pipe(fs.createWriteStream(filePath)).on('close', function() {

      console.log(`成功保存图片${filename}`);

     });

    }

   });

  }

  console.log('爬虫完毕!'); // 爬虫结束

 } catch (e) {

  console.log(e); // 输出错误信息

 }

}

start(); // 启动爬虫

四、运行代码

在编写完代码后,我们就可以通过以下命令运行我们的代码了:


node index.js

在稍等一会儿后,我们可以在当前目录下找到我们爬取到的图片。

五、总结

通过本文,我们可以了解到Node.js图片爬虫的基本教程。这是一个非常实用的技能,无论是对于开发者来说,还是对于市面上的企业来说,都是非常有用的。当然,在进行爬虫开发时,我们也需要遵循一些规范,不能随意地爬取别人的网站,不仅会侵犯别人的权益,还可能面临法律风险。因此,在进行爬虫开发时,我们需要严格遵守相关规定和法律法规,以避免不必要的风险。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复