通过 puppeteer 点击 "load more" 按钮
Clicking on "load more" button via puppeteer
我是 JS 新手。我需要解析来自 Instagram 的评论,但首先我需要加载它们。我在 Node.js 中使用 Puppeteer,所以我写了这段代码:
await page.evaluate(() => {
while(document.querySelector('main').querySelector('ul').querySelector('button'))
document.querySelector('main').querySelector('ul').querySelector('button').click()
})
它什么都不做,开始无限循环。我试图在循环内超时等等......
我希望该代码将检查此按钮是否存在以及是否为真 - 在它存在时单击()加载越来越多的评论。
我无法理解我做错了什么。
在此处查看我对与此问题非常相似的问题的回答:
您应该能够将其应用于查找并持续点击您的 "load more" 按钮。
而不是使用 while()
loop, you can use setInterval()
在加载评论时将每次迭代放慢到更易于管理的速度:
await page.evaluate(async () => {
await new Promise((resolve, reject) => {
const interval = setInterval(() => {
const button = document.querySelector('main ul button');
if (button !== null) {
button.click();
} else {
clearInterval(interval);
resolve();
}
}, 100);
});
});
我是 JS 新手。我需要解析来自 Instagram 的评论,但首先我需要加载它们。我在 Node.js 中使用 Puppeteer,所以我写了这段代码:
await page.evaluate(() => {
while(document.querySelector('main').querySelector('ul').querySelector('button'))
document.querySelector('main').querySelector('ul').querySelector('button').click()
})
它什么都不做,开始无限循环。我试图在循环内超时等等...... 我希望该代码将检查此按钮是否存在以及是否为真 - 在它存在时单击()加载越来越多的评论。 我无法理解我做错了什么。
在此处查看我对与此问题非常相似的问题的回答:
您应该能够将其应用于查找并持续点击您的 "load more" 按钮。
而不是使用 while()
loop, you can use setInterval()
在加载评论时将每次迭代放慢到更易于管理的速度:
await page.evaluate(async () => {
await new Promise((resolve, reject) => {
const interval = setInterval(() => {
const button = document.querySelector('main ul button');
if (button !== null) {
button.click();
} else {
clearInterval(interval);
resolve();
}
}, 100);
});
});