介绍
Tiny-puppeteer是一个基于Puppeteer的npm包,它可以在无界面浏览器环境下模拟用户对网页的操作,并提供了许多便捷的API来实现自动化测试、爬虫等功能。
本文将详细介绍如何使用Tiny-puppeteer,并通过示例代码演示其强大的功能和使用方法。
安装
你可以像安装其他npm包一样安装Tiny-puppeteer:
npm install tiny-puppeteer
然后在你的项目中引入它:
const puppeteer = require('tiny-puppeteer');
基本用法
启动浏览器
使用以下代码启动一个浏览器实例:
const browser = await puppeteer.launch();
如果需要配置选项,可以传递一个配置对象:
const browser = await puppeteer.launch({ headless: false, args: ['--start-maximized'] });
打开页面
使用以下代码打开一个网页:
const page = await browser.newPage(); await page.goto('https://www.baidu.com');
操作页面元素
可以使用page.$()或page.$$()方法获取单个或多个页面元素,然后使用eval()方法执行JavaScript代码操作元素。
例如,在百度搜索框中输入关键字并点击搜索按钮:
const inputElement = await page.$('#kw'); await inputElement.type('Tiny-puppeteer'); const buttonElement = await page.$('#su'); await buttonElement.click();
获取页面内容
可以使用page.evaluate()方法执行JavaScript代码获取页面的文本、属性等内容。
例如,获取百度搜索结果页中第一个搜索结果的标题和链接:
const result = await page.evaluate(() => { const title = document.querySelector('.result > h3 > a').innerText; const link = document.querySelector('.result > h3 > a').href; return { title, link }; }); console.log(result);
关闭浏览器
使用以下代码关闭浏览器实例:
await browser.close();
示例代码
下面是一个完整的示例代码,它打开百度首页,在搜索框中输入关键字并点击搜索按钮,然后获取搜索结果页中第一个搜索结果的标题和链接。你可以将其粘贴到一个.js文件中并运行。
-- -------------------- ---- ------- ----- --------- - -------------------------- ------ -- -- - ----- ------- - ----- ------------------ --------- ------ ----- --------------------- --- ----- ---- - ----- ------------------ ----- ----------------------------------- ----- ------------ - ----- -------------- ----- ------------------------------------ ----- ------------- - ----- -------------- ----- ---------------------- ----- ------ - ----- ---------------- -- - ----- ----- - ------------------------------- - -- - -------------- ----- ---- - ------------------------------- - -- - --------- ------ - ------ ---- -- --- -------------------- ----- ---------------- -----
结论
Tiny-puppeteer是一个非常方便的npm包,它可以帮助我们轻松实现自动化测试、爬虫等功能。本文介绍了其基本用法,并通过示例代码演示了如何使用它来模拟用户对网页的操作及获取页面内容。希望本教程能帮助你更好地理解Tiny-puppeteer的强大功能和使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/54304