我已经使用 puppeteer 在节点中编写了小脚本,以从网站的登陆页面循环执行不同帖子的链接的点击。
我的脚本中使用的站点链接是一个占位符。而且,它们不是动态的。所以,傀儡师可能有点过分了。然而,我的目的是学习点击的逻辑。
当我执行第一个脚本时,它单击一次并在退出源时抛出以下错误。
const puppeteer = require("puppeteer");
(async () => {
const browser = await puppeteer.launch({headless:false});
const [page] = await browser.pages();
await page.goto("/sf/ask/tagged/web-scraping/",{waitUntil:'networkidle2'});
await page.waitFor(".summary");
const sections = await page.$$(".summary");
for (const section of sections) {
await section.$eval(".question-hyperlink", el => el.click())
}
await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)
上述脚本遇到的错误:
(node:9944) UnhandledPromiseRejectionWarning: Error: Execution context was destroyed, most likely because of a navigation.
Run Code Online (Sandbox Code Playgroud)
当我执行以下命令时,脚本假装单击一次(实际上并非如此)并遇到与之前相同的错误。
const puppeteer = require("puppeteer");
(async () => {
const browser = await puppeteer.launch({headless:false});
const [page] = await …Run Code Online (Sandbox Code Playgroud)