Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Puppeter中循环通过一组URL_Javascript_Puppeteer - Fatal编程技术网

Javascript 在Puppeter中循环通过一组URL

Javascript 在Puppeter中循环通过一组URL,javascript,puppeteer,Javascript,Puppeteer,如何使用Puppeter从多个URL中提取内容 我已经创建了一个循环,但是我只看到第一个url的结果 我怀疑这与我在哪里声明results变量有关,但我没有尝试过,有人知道怎么做吗 const puppeter=require('puppeter'); 函数运行(){ 返回新承诺(异步(解析、拒绝)=>{ 试一试{ const browser=wait puppeter.launch(); const page=wait browser.newPage(); 常量URL=[”https://w

如何使用Puppeter从多个URL中提取内容

我已经创建了一个循环,但是我只看到第一个url的结果

我怀疑这与我在哪里声明results变量有关,但我没有尝试过,有人知道怎么做吗

const puppeter=require('puppeter');
函数运行(){
返回新承诺(异步(解析、拒绝)=>{
试一试{
const browser=wait puppeter.launch();
const page=wait browser.newPage();
常量URL=[”https://www.marksandspencer.com/high-neck-long-sleeve-blouse/p/p60260040?image=SD_01_T43_5168_HD_X_EC_90&color=LIGHTDENIM&prevPage=plp", "https://www.marksandspencer.com/pure-cotton-printed-short-sleeve-t-shirt/p/p60263529?image=SD_01_T41_8030Z_Z4_X_EC_90&color=WHITEMIX&prevPage=plp"];
for(设i=0;i{
让product=document.querySelector('h1[itemprop=name]')。innerText;
让结果=[];
让items=document.querySelectorAll(“[data ttip id=sizeGridTooltip]tbody tr td label”);
items.forEach((元素)=>{
让size=element.getAttribute('for');
让stockLevel=“”;
设最近的_td=元素。最近的('td');
if(最近的类列表包含('low-stock')){
stockLevel=“低库存”
}else if(最近的类列表包含('缺货')){
stockLevel=“缺货”
}否则{
stockLevel=“库存中”
}
结果:推({
产品:产品,,
尺寸:尺寸,
库存:库存水平
})
});
返回结果
})
browser.close();
退货(产品);
}
}捕获(e){
退货拒收(e);
}
})
}

run().then(console.log).catch(console.error)这些行在for循环中:

browser.close();
退货(产品);
因此,作为第一次迭代的一部分,关闭浏览器并返回函数。您应该将其移出for循环,并将
产品
存储在如下数组中:

constURL=/*…*/;
const productsList=[];
for(设i=0;i

如果您正在寻找一种更优雅的解决方案(用于并行抓取页面),您可能需要查看该库(免责声明:我是作者)。

啊,谢谢。将
产品
存储在一个数组中是什么意思?我会在循环内部这样做吗?我来看看Puppeter-cluster。您需要收集
页面的结果。评估
。我编辑了我的答案以使其更清晰。谢谢,当我这样做时,我得到
错误:评估失败:引用错误:结果未定义
您能提供您的源代码吗。我猜您没有像消息所说的那样定义变量
results
。当然,这是完整的代码。这是我第一次使用木偶演员,所以我仍然在阅读文档,了解它是如何工作的。