如何在通过 puppeteer 进行报废时访问使用 JavaScript 创建的元素?

问题描述 投票:0回答:1

我正在使用 Puppeteer 访问我的 GitHub 关注页面中的按钮(取消关注按钮)。因为当我抓取这个页面时这个按钮不存在,我认为它是由用户端 JS 代码创建的。然后我使用

waitForSelector
命令来等待这个按钮,但页面再次找不到该按钮。这是我的代码:

const test2=async()=>{
    let url='https://github.com/nariman?tab=following'
    await browserInit()
    await page.goto(url)
    await page.waitForSelector('input.btn')
    console.log('done')
}

这会导致这个错误:

TimeoutError: Waiting for selector `input.btn` failed: Waiting failed: 30000ms exceeded

您可以在自己的 GitHub 页面中进行测试。有什么解决办法吗?

javascript web-scraping puppeteer
1个回答
0
投票

您可以使用称为 MutationObserver 的东西,例如 page.on('mutationover',callback),通过它您可以监视 DOM 更改并专门等待取消关注按钮插入

© www.soinside.com 2019 - 2024. All rights reserved.