21xrx.com
2025-04-03 15:35:13 Thursday
文章检索 我的文章 写文章
Node.js 图片爬虫教程
2023-06-28 19:06:24 深夜i     9     0
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图片爬虫的基本教程。这是一个非常实用的技能,无论是对于开发者来说,还是对于市面上的企业来说,都是非常有用的。当然,在进行爬虫开发时,我们也需要遵循一些规范,不能随意地爬取别人的网站,不仅会侵犯别人的权益,还可能面临法律风险。因此,在进行爬虫开发时,我们需要严格遵守相关规定和法律法规,以避免不必要的风险。

  
  

评论区

请求出错了