命令行批量截图Node脚本示例代码

来分享一下命令行批量截图Node脚本的完整攻略。

简介

有时候我们需要在网站上批量截取图片,例如某个网站上有大量图标,需要逐个下载,这时候手动截图就会变得非常繁琐。如果使用Node.js编写一个命令行脚本,就可以轻松实现批量截屏。

安装及使用

  1. 安装Node.js

下载并安装合适版本的 Node.js。

  1. 安装ChromeHeadless

ChromeHeadless是 Chrome 浏览器的无界面版本,可以通过脚本调用 ChromeHeadless 来进行页面截图

安装 ChromeHeadless:

Ubuntu 和 Debian:

sudo apt-get install -y libnss3-tools chromium-browser

macOS:

brew install chromium

或直接从谷歌官方下载:https://www.google.com/chrome/

  1. 安装Puppeteer

Puppeteer是一个由 Google Chrome 官方团队维护的用于控制 ChromeHeadless 的库。

安装Puppeteer(切换至淘宝镜像进行安装会更快):

npm i puppeteer -S --registry=https://registry.npm.taobao.org
  1. 编写代码

代码示例:

const puppeteer = require('puppeteer');
const fs = require('fs');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.baidu.com');
  await page.setViewport({width: 1000, height: 800});

  const links = [
    {url: 'https://www.baidu.com', name: 'baidu_home'},
    {url: 'https://www.google.com', name: 'google_home'}
  ];

  for (let i = 0; i < links.length; i++) {
    await page.goto(links[i].url, {waitUntil: 'networkidle2'});
    await page.screenshot({path: `./${links[i].name}.png`});
  }

  await browser.close();
})();

上述代码经过简单封装,可以方便的实现从一组网址列表中批量截屏,图片会被保存在当前目录下。

示例说明

  1. 获取多个网站的截图

目标:获取多个网站主页截图

示例代码:

const puppeteer = require('puppeteer');
const fs = require('fs');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.setViewport({width: 1000, height: 800});

  const links = [
    {url: 'https://www.baidu.com', name: 'baidu_home'},
    {url: 'https://www.google.com', name: 'google_home'},
    {url: 'https://github.com', name: 'github_home'}
  ];

  for (let i = 0; i < links.length; i++) {
    await page.goto(links[i].url, {waitUntil: 'networkidle2'});
    await page.screenshot({path: `./${links[i].name}.png`});
  }

  await browser.close();
})();
  1. 获取同一个网站多个页面的截图

目标:获取百度首页、知道、图片、文库、视频五个页面的截图

示例代码:

const puppeteer = require('puppeteer');
const fs = require('fs');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.setViewport({width: 1000, height: 800});

  const links = [
    {url: 'https://www.baidu.com', name: 'baidu_home'},
    {url: 'https://zhidao.baidu.com', name: 'baidu_zhidao'},
    {url: 'https://image.baidu.com', name: 'baidu_image'},
    {url: 'https://wenku.baidu.com', name: 'baidu_wenku'},
    {url: 'https://v.baidu.com', name: 'baidu_video'}
  ];

  for (let i = 0; i < links.length; i++) {
    await page.goto(links[i].url, {waitUntil: 'networkidle2'});
    await page.screenshot({path: `./${links[i].name}.png`});
  }

  await browser.close();
})();

总结

通过Node.js编写的命令行脚本,可以轻松实现批量截屏的需求,Puppeteer提供了丰富的API供我们调用。利用一些简单的控制流语句,我们可以方便的实现从一组网址列表中批量截屏的需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:命令行批量截图Node脚本示例代码 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • node以及npm版本不对应出错的完美解决方法

    当我们在使用npm安装依赖或者使用node运行程序的时候,可能会遇到版本不对应的问题,导致程序无法正常运行。这时候我们需要解决版本不对应的问题,下面我将为大家介绍一种完美解决方法。 问题 在使用npm安装依赖或者使用node运行程序的时候,可能会遇到以下错误提示: Error: Unsupported Node.js version FATAL ERROR:…

    node js 2023年6月8日
    00
  • Node.js模块全局安装路径配置方法

    Node.js提供了全局安装模块的功能,全局安装的模块可在命令行中直接使用。但是,全局安装的模块默认安装在系统的全局路径下,如果你希望将需全局安装的模块安装在其他路径下,那么可以按照下面的步骤进行配置。 步骤一:创建文件夹 首先,你需要创建一个指定模块全局安装路径的文件夹,例如我的路径为/usr/local/modules,则可以执行以下命令创建此文件夹: …

    node js 2023年6月8日
    00
  • windows8.1+iis8.5下安装node.js开发环境

    下面是详细的攻略: 环境准备 安装 Windows 8.1 操作系统。可以从官方网站下载镜像文件并制作启动盘进行安装。 安装 IIS 8.5。在控制面板的“程序和功能”中选择“启用或关闭 Windows 功能”,勾选“Internet 信息服务”相关选项即可进行安装。 安装 Node.js。可以从 Node.js 官网下载安装包并进行安装。推荐选择 64 位…

    node js 2023年6月8日
    00
  • Node.js中创建和管理外部进程详解

    创建和管理外部进程在Node.js中是一项非常重要的任务。在某些情况下,你可能需要在Node.js中创建、启动并管理其他进程,例如使用Node.js在后台启动进程并与它们进行通信。这篇文章将为你提供创建和管理外部进程的攻略。 什么是子进程? 在计算机中,子进程是由父进程创建的进程。父进程可以控制进程的创建和销毁,并且可以向子进程发送命令和数据。 在Node.…

    node js 2023年6月8日
    00
  • node+koa2+mysql+bootstrap搭建一个前端论坛

    这里给出一个基于node+koa2+mysql+bootstrap搭建一个前端论坛的完整攻略,包括环境配置、项目结构、代码实现等。这个项目将会实现以下功能: 用户注册和登录 发布和删除文章,并支持文章评论和点赞功能 收藏文章和个人中心页面 环境配置 首先,需要安装node.js和mysql数据库。在安装完成后,可以使用npm安装koa2的脚手架工具koa-g…

    node js 2023年6月8日
    00
  • 安装nodejs和yarn及配置淘宝源过程记录

    以下是详细讲解“安装nodejs和yarn及配置淘宝源过程记录”的完整攻略。 安装Node.js Windows系统 访问Node.js官网,下载最新版本的Node.js安装包。 双击下载的安装包,按照提示进行安装。 安装完成后,打开命令提示符,输入node -v,如果返回版本信息,则表示安装成功。 macOS系统 使用Homebrew安装Node.js,打…

    node js 2023年6月8日
    00
  • Node.js实现文件上传的示例

    下面我将为你介绍一下“Node.js实现文件上传的示例”的完整攻略。 什么是文件上传 文件上传是指将本地的文件上传到服务器上的过程。在Web开发中经常要用到文件上传,比如用户上传头像、PDF文件以及其他文档等。 Node.js实现文件上传的示例 Node.js可以很方便地实现文件上传,需要用到第三方模块formidable。下面是实现文件上传的步骤: 步骤1…

    node js 2023年6月8日
    00
  • npm出现Cannot find module ‘XXX\node_modules\npm\bin\npm-cli.js’错误的解决方法

    当我们使用/安装Node.js时,经常会用到一个著名的Node.js包管理器——npm。然而,在使用npm时,有时会出现“Cannot find module ‘XXX\node_modules\npm\bin\npm-cli.js’”的错误,这可能会非常影响我们的工作。下面是解决方法的攻略: 问题分析 首先,我们需要了解出现这个错误的原因。这个错误通常是由…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部