Javascript NodeJS中的puppeter异步等待循环
我正在尝试制作一个脚本:Javascript NodeJS中的puppeter异步等待循环,javascript,node.js,asynchronous,promise,puppeteer,Javascript,Node.js,Asynchronous,Promise,Puppeteer,我正在尝试制作一个脚本: 从站点地图获取所有URL 拍了一张木偶演员的截图 我目前正在尝试理解如何异步编码,但在为这个问题找到正确的编码模式方面仍然有困难。 以下是我目前拥有的代码: //const spider=require('./spider'); const Promise=require(‘蓝鸟’); const puppeter=require('puppeter'); const SpiderConstructor=require('sitemapper'); 异步函数爬网(ur
//const spider=require('./spider');
const Promise=require(‘蓝鸟’);
const puppeter=require('puppeter');
const SpiderConstructor=require('sitemapper');
异步函数爬网(url,超时){
const results=wait spider(url,超时);
等待承诺。每个(结果,异步(结果,索引)=>{
等待屏幕(结果、索引);
});
}
异步函数屏幕(结果、索引){
const browser=wait puppeter.launch();
日志('do',索引);
const page=wait browser.newPage();
等待页面。转到(结果);
const path=wait'screenshots/'+index+page.title()+'.png';
等待页面。屏幕截图({path});
browser.close();
}
异步函数spider(url、超时){
const spider=等待新的SpiderConstructor({
url:url,
超时:超时
});
const data=wait spider.fetch();
console.log(数据.站点.长度);
返回数据。站点;
};
爬行https://www.google.com/sitemap.xml', 15000)
.catch(错误=>{
控制台错误(err);
});代码>const path
不需要一个await
,它是一个字符串-也许你的意思是'screenshots/'+index+await page.title()+'.png'代码>?您的代码似乎非常好。我猜想这是Sitemapper的错——它几乎没有文档记录,并且在代码中使用了许多promise反模式。例如,看一看。它似乎只是在超时时忽略URL。const path
不需要await
,它是一个字符串-也许你的意思是'screenshots/'+index+await page.title()+'.png'代码>?您的代码似乎非常好。我猜想这是Sitemapper的错——它几乎没有文档记录,并且在代码中使用了许多promise反模式。例如,看一看。它似乎只是在超时时忽略URL。