我正在尝试使用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;
});
}
全力以赴!
答案 0 :(得分:1)
我会这样做。
我认为这里的超时没有什么区别,如果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;
}
}