js抓取网页内容(如何使用RPA工具进行自动化工具?工具)
优采云 发布时间: 2021-10-28 15:25js抓取网页内容(如何使用RPA工具进行自动化工具?工具)
背景
RPA工作流中最常见的场景是操作浏览器,对页面内容进行相关操作。本例以页面为例。带领大家初步探索如何使用RPA工具自动抓取页面文本内容。
本文将使用 JavaScript 开发 RPA 脚本。这里使用的RPA工具LeanRunner可以直接从Windows应用商店下载,支持使用node.js开源自动化库进行RPA开发。用户可以按照以下步骤逐步实现自己的 RPA 脚本。
脚步
新项目
打开LeanRunner,选择【项目】-【新建】-【选择基本项目模板】,输入项目名称:demo,选择项目路径:
安装依赖库
Selenium-webdriver 是一个流行的操作 Web 自动化库。使用 chromedriver 库可以驱动 Chrome 自动化各种网页。当然,文本提取不是问题。本 RPA 使用这两个库来实现功能。所以创建项目后,需要安装相应的库。
点击 LeanRunner 打开命令行工具按钮
,执行安装命令:
npm init -ynpm install chromedriver selenium-webdriver @types/selenium-webdriver --save
备注:npm作为node.js的包管理机制,需要安装在node.js环境中才能使用
(下载链接:)
定义流程步骤
流程步骤被定义为使自动化流程可读。
一种。打开main.js,在【Toolbox】-【Frame】中找到stepGroup方法,拖拽到js文件中。
湾 在弹出的对话框中输入描述文字:抓取网页文字内容,点击插入代码。
C。此时,main.js文件的内容:
const { stepGroup } = require('leanrunner');async function main() { await stepGroup("抓取网页文本内容", async () => { })}
d. 继续拖拽【Toolbox】-【Frame】中的step方法来描述文字输入:使用Chrome浏览器打开你要截取的网站:
e. 按照上述步骤插入抓取文本并再次关闭浏览器的步骤定义。
main.js 如下:
const { step } = require('leanrunner');const { stepGroup } = require('leanrunner');async function main() { await stepGroup("抓取网页文本内容", async () => { await step("使用Chrome浏览器打开要抓取的网站", async (world) => { }) await step("抓取文本", async (world) => { }) await step("关闭浏览器", async (world) => { }) })}
F。插入Workflow.run函数,RPA执行最终会被执行,在【Toolbox】-【Framework】中选择Workrun.run()函数:
G。在运行函数中输入“main”:
最后的代码是:
const { Workflow } = require('leanrunner');const { step } = require('leanrunner');const { stepGroup } = require('leanrunner');async function main() { await stepGroup("抓取网页文本内容", async () => { await step("使用Chrome浏览器打开要抓取的网站", async (world) => { }) await step("抓取文本", async (world) => { }) await step("关闭浏览器", async (world) => { }) })}Workflow.run(main);
实施步骤
参考 selenium-webdriver API
()。分别实现以上操作步骤:
一种。使用Chrome浏览器打开你要截取的网站:
const WebDriver = require('selenium-webdriver');let driver = new WebDriver.Builder().forBrowser('chrome').build();const url = 'http://wufazhuce.com/one/2558';await driver.get(url);
上面的代码创建了一个 WebDriver 实例,打开一个浏览器窗口,并导航到目标 url。
湾 抓取文本:
let text = await driver.findElement({ css:'div[]'}).getText();console.log(text);
上面的代码使用css选择器定位要访问的元素并打印出来。
C。关闭浏览器
await driver.close();
最终代码如下:
const { Workflow } = require('leanrunner');const { step } = require('leanrunner');const { stepGroup } = require('leanrunner');require('chromedriver');const WebDriver = require('selenium-webdriver');let driver = new WebDriver.Builder().forBrowser('chrome').build();async function main() { await stepGroup("抓取网页文本内容", async () => { await step("使用Chrome浏览器打开要抓取的网站", async (world) => { const url = 'http://wufazhuce.com/one/2558'; await driver.get(url); }) await step("抓取文本", async (world) => { let text = await driver.findElement({ css:'div[]'}).getText(); console.log(text); world.attachText(text); }) await step("关闭浏览器", async (world) => { await driver.close() }) })}Workflow.run(main);
实施
单击“运行”按钮
, 或者点击“运行项目”按钮
可以看到浏览器打开网页,在 LeanRunner 设计器的输出面板中打印出文本内容。
如果是运行项目,也会显示html运行报告:
对于用户来说,html 报告更具可读性。
总结
至此,我们就完成了一个网页基本操作的RPA。后续的操作可以在这个RPA的基础上进一步深化,比如将抓取到的文本内容存储到Excel表格或者数据库中。
本文使用的 selenium-webdriver 自动化库是一个非常流行的开源库,可以支持各种类型的浏览器,并且可以及时更新以支持最新版本的浏览器。同时,Node.js 也是一个非常流行的开源平台。基于这些技术,开发RPA自动化脚本来维护RPA脚本的可用性和可维护性。结合LeanRunner RPA平台,可以帮助企业快速构建自己的流程自动化。