gpt4 book ai didi

javascript - 在 node.js 中使用 chromeless 进行分页

转载 作者:行者123 更新时间:2023-11-30 21:11:10 25 4
gpt4 key购买 nike

我正在使用 chromeless AWS Lambda 上的 headless 浏览器。

我正在尝试弄清楚如何对内容进行分页,但我是 Node 和异步/等待的新手。

这是我的代码:

const Chromeless = require('chromeless').default

async function run() {
const chromeless = new Chromeless({})

var results = [];

const instance = await chromeless
.goto('https://www.privacyshield.gov/list')

for (i = 0; i < 3; i++)
{
console.log('in for');
instance
.html()
.click('a.btn-navigate:contains("Next Results")')
.wait(3000)
results.push(html)
}

await chromeless.end()
}

run().catch(console.error.bind(console))

但是我得到了错误:

TypeError: Cannot read property 'html' of undefined

这意味着实例没有在 await 之外定义。我不会等待在每个 for 循环迭代中创建单独的实例,因为我会失去我在页面上的位置。

最佳答案

我花了一些时间才弄明白,但很有趣,这也是我第一次等待来自 Node 的异步代码。

const { Chromeless } = require('chromeless')

async function run() {
const chromeless = new Chromeless()
let curpos = chromeless
chromeless.goto('https://www.privacyshield.gov/list')
.press(13)
.wait(3000);
const page1 = await curpos.html()

curpos = curpos.click('a.btn-navigate')
.wait(3000);
const page2 = await curpos.html()

curpos = curpos.click('a.btn-navigate')
.wait(3000);
const page3 = await curpos.html()

console.log(page1)
console.log("\n\n\n\n\n\n\n")
console.log(page2)
console.log("\n\n\n\n\n\n\n")
console.log(page3)

await chromeless.end()
}

run().catch(console.error.bind(console))

我希望你能从那里把它带到循环中。

有趣的是,我能够将其转换为 ES5 代码并进行调试。

希望对您有所帮助。

关于javascript - 在 node.js 中使用 chromeless 进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46126596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com