我正在尝试使用Puppeteer在Node中创建一个webscrapper。我的第一个挑战(我认为这很容易),通过“加载更多”按钮分页传递。
但是,当我运行以下代码时,Puppeteer单击所有“加载更多”,然后单击内容后,我需要停止单击。
为什么会这样?
let loadMore = true;
while (loadMore) {
selector = 'ul.pager > li > a.button';
await page.waitForSelector(selector, { timeout: 600 }).then(() => {
page.click(selector);
}).catch(() => {
loadMore = false;
});
}
全部感谢!
我会这样做。我认为这里的超时没有什么区别,如果if条件中的await
不够,那么脚本可能存在其他问题。
let loadMore = true;
while (loadMore) {
const selector = 'ul.pager > li > a.button';
if ((await page.$(selector)) !== null) {
await page.click(selector);
} else {
loadMore = false;
}
}