在本教程中,我们将探索如何使用 Puppeteer 在 Nstbrowser 中自动执行 RPA 操作。通过本教程,您将:
所以让我们开始探索并解锁 Puppeteer 和 Nstbrowser 的 RPA 潜力吧。
RPA(Robotic Process Automation)是一种基于软件机器人和人工智能的业务流程自动化技术。
在传统的工作流自动化工具中,自动化任务通常由程序员生成,并使用内部应用程序接口(API)或专用脚本语言作为与后端系统的接口。有些软件可能没有适用于这些目的的 API,而 RPA 可以降低自动化的门槛。
想要高效地管理多个帐户吗?
Nstbrowser 的 RPA 可以帮助你解决麻烦
您对网页抓取和 Browseless 有什么好的想法或疑惑吗?
快来看看其他开发人员在 Discord 和 Telegram 上分享了什么!
Nstbrowser 是一款免费的反检测浏览器,简化了网络爬虫和自动化。它集成了反检测、网页解锁和智能代理。
此外,Nstbrowser 还支持云容器集群、无浏览器和与 Windows/Mac/Linux 兼容的企业级云浏览器解决方案。显然,即使传统的 API 或脚本语言不可用,它也可以实现无缝自动化。
继续阅读!
在开始之前,请确保您具有以下前提:
npm install
安装所有必要的库。这将创建一个包含所有依赖项的 package.json
文件。npm init -y
npm install puppeteer-core
创建一个新的项目目录并进入其中。然后,初始化一个新的 Node.js
项目并安装 puppeteer-core。
mkdir my-automation-project
cd my-automation-project
npm init -y
npm install puppeteer-core
在开始配置之前,您必须获取 API 密钥和 ProfileID。
成功获取 API Key 和 ProfileId 后,让我们设置 Puppeteer 使用您的 API Key 和 ProfileId 连接 Nstbrowser。
创建一个 JavaScript 文件(例如 index.js)在您的项目目录中,并添加以下代码:
import puppeteer from 'puppeteer-core';
async function execPuppeteer(browserWSEndpoint) {
try {
const browser = await puppeteer.connect({
browserWSEndpoint: browserWSEndpoint,
defaultViewport: null,
});
await browser.newPage();
} catch (err) {
console.error('launch', err);
}
}
async function launchAndConnectToBrowser(profileId) {
const host = 'localhost:8848';
const apiKey = 'your api key'; // Replace with your actual API key
const config = {
headless: false, // support: true, 'new'
autoClose: true,
};
const query = new URLSearchParams({
'x-api-key': apiKey, // required
config: encodeURIComponent(JSON.stringify(config)),
});
const browserWSEndpoint = `ws://${host}/devtool/launch/${profileId}?${query.toString()}`;
await execPuppeteer(browserWSEndpoint);
}
launchAndConnectToBrowser('your profile id').then(); // Replace with your actual ProfileId
your api key
和 your profile id
连接到 Nstbrowser 浏览器后,您可以执行一些您想要实现的 RPA 操作,例如自动登录到您的亚马逊账户。更新执行 execPuppeteer
函数以包含相应的步骤。
async function execPuppeteer(browserWSEndpoint) {
try {
const browser = await puppeteer.connect({
browserWSEndpoint: browserWSEndpoint,
defaultViewport: null,
});
const page = await browser.newPage();
await page.goto('https://www.amazon.com');
// go to sign in page
const signInSelector = '#nav-link-accountList';
await page.waitForSelector(signInSelector);
await page.click(signInSelector);
// type your account
const accountInputSelector = '#ap_email';
await page.waitForSelector(accountInputSelector);
await page.type(accountInputSelector, 'your account');
// click continue button
const continueSelector = 'input#continue';
await page.waitForSelector(continueSelector);
await page.click(continueSelector);
// type your password
const passowrdInputSelector = '#ap_password';
await page.waitForSelector(passowrdInputSelector);
await page.type(passowrdInputSelector, 'your password');
// click submit button
const signInSubmitSelector = '#signInSubmit';
await page.waitForSelector(signInSubmitSelector);
await page.click(signInSubmitSelector);
} catch (err) {
console.error('launch', err);
}
}
your account
和 your password
这样,您就成功地自动登录到您的亚马逊账户了。这只是 RPA 功能的一个常见而基本的操作,还有更多等着您去挖掘。
import puppeteer from 'puppeteer-core';
async function execPuppeteer(browserWSEndpoint) {
try {
const browser = await puppeteer.connect({
browserWSEndpoint: browserWSEndpoint,
defaultViewport: null,
});
const page = await browser.newPage();
await page.goto('https://www.amazon.com');
// Go to sign-in page
const signInSelector = '#nav-link-accountList';
await page.waitForSelector(signInSelector);
await page.click(signInSelector);
// Type your account
const accountInputSelector = '#ap_email';
await page.waitForSelector(accountInputSelector);
await page.type(accountInputSelector, 'your account');
// Click continue button
const continueSelector = 'input#continue';
await page.waitForSelector(continueSelector);
await page.click(continueSelector);
// Type your password
const passwordInputSelector = '#ap_password';
await page.waitForSelector(passwordInputSelector);
await page.type(passwordInputSelector, 'your password');
// Click submit button
const signInSubmitSelector = '#signInSubmit';
await page.waitForSelector(signInSubmitSelector);
await page.click(signInSubmitSelector);
} catch (err) {
console.error('launch', err);
}
}
async function launchAndConnectToBrowser(profileId) {
const host = 'localhost:8848';
const apiKey = 'your api key';
const config = {
headless: false, // support: true, 'new'
autoClose: true,
};
const query = new URLSearchParams({
'x-api-key': apiKey, // required
config: encodeURIComponent(JSON.stringify((config))),
});
const browserWSEndpoint = `ws://${host}/devtool/launch/${profileId}?${query.toString()}`;
await execPuppeteer(browserWSEndpoint);
}
launchAndConnectToBrowser('your profile id').then();
我们希望通过本教程分享了以下三个关键点:
通过利用 Puppeteer 和 Nstbrowser,您可以创建高效的自动化工作流,处理重复性任务,管理多个账户,并执行复杂的网络自动化任务。