前端开发中,我们经常需要进行网页截图或者模拟浏览器操作等功能。PhantomJS 是一个基于 WebKit 的无界面浏览器,它可以通过 JavaScript 控制页面渲染,实现众多功能。而 phantom2 这个 npm 包则能够将 PhantomJS 封装成 Node.js 模块,使得我们能够在 Node.js 开发环境下使用 PhantomJS 提供的各种功能。本文就为大家介绍如何使用 phantom2 包。
安装
使用 npm 工具进行安装:
npm install phantom2 --save
基础用法
使用 phantom2 包,遵循大多数 Node.js 模块的使用方式。首先,通过 require 方法引入 phantom2:
const phantom = require('phantom2');
PhantomJS 通常需要一定的加载时间,所以使用 await
关键字确保程序在 PhantomJS 加载完成之后再执行:
const instance = await phantom.create(); const page = await instance.createPage(); await page.open('https://www.baidu.com/'); await page.render('baidu.png'); await instance.exit();
这段代码的意思是打开百度页面,并截取页面图片保存在本地。
进阶用法
自定义 User-Agent
const instance = await phantom.create({"settings.userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"});
使用自定义代理
await page.setProxy({ proxyType: 'http', proxy: '192.168.191.1:8080' });
获取页面 title
await page.on('onLoadFinished', () => { console.log(page.title); });
获取页面 cookie
await page.setCookies([{name: 'key', value: 'value'}]); const cookies = await page.getCookies(); console.log(cookies);
总结
通过本文的介绍,你已经掌握了如何使用 phantom2 这个 npm 包在 Node.js 环境下操作 PhantomJS 实现网页截图、模拟浏览器等功能。同时,你也学习了一些进阶用法,包括自定义 User-Agent、使用自定义代理、获取页面 title 和获取页面 cookie 等。编写这篇文章的目的不仅是让你了解该工具的基础使用,更是希望能够让你在实际开发中运用好这个工具,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055eb181e8991b448dc52e