Javascript NodeJS无法读取属性';推动';未定义的
我有一个函数,可以在页面上抓取一些数据,并将它们存储在一个变量“result”中。有几个页面,因此函数包含在“for”循环中 } 之后,我需要将结果存储在另一个包含所有数据的变量(循环)中。在这里,我使用了“推”,但我得到了一个错误: 无法读取未定义的属性“push”Javascript NodeJS无法读取属性';推动';未定义的,javascript,node.js,push,puppeteer,Javascript,Node.js,Push,Puppeteer,我有一个函数,可以在页面上抓取一些数据,并将它们存储在一个变量“result”中。有几个页面,因此函数包含在“for”循环中 } 之后,我需要将结果存储在另一个包含所有数据的变量(循环)中。在这里,我使用了“推”,但我得到了一个错误: 无法读取未定义的属性“push” 让所有_结果; 试一试{ let query='myurl' wait page.goto(查询,{waitUntil:“networkidle2”}); 让max_pages=parseInt(等待page.$eval('.pa
让所有_结果;
试一试{
let query='myurl'
wait page.goto(查询,{waitUntil:“networkidle2”});
让max_pages=parseInt(等待page.$eval('.pagination>li:n最后一个子项(2)>a>.button_标签',o=>o.innerText));
对于(设i=1;i
以下代码正在运行。正如建议的那样,我将“all_results”声明为一个数组
let all_results = [];
try{
let query = 'myurl'
await page.goto(query, { waitUntil: "networkidle2" });
let max_pages = parseInt(await page.$eval('.pagination > li:nth-last-child(2) > a > .button__label', o => o.innerText));
for(let i = 1; i < max_pages+1; i++){
console.log('page ',i,' of ',max_pages);
try{
const result = await PageScraping(page, query);
query = `urlpage${i+1}`;
all_results.push(result);
console.log(all_results);
} catch(e){
console.log('ERROR: could not reach landing page',e.message);
}
}
} catch(error) {
console.log('ERROR: could not reach landing page',error.message);
} finally {
try{
await browser.close();
}catch(browser_error){
console.log('ERROR cant close browser??', browser_error.message)
}
}
}
让所有_结果=[];
试一试{
let query='myurl'
wait page.goto(查询,{waitUntil:“networkidle2”});
让max_pages=parseInt(等待page.$eval('.pagination>li:n最后一个子项(2)>a>.button_标签',o=>o.innerText));
对于(设i=1;i
所有结果是什么?我看不到它在任何地方被定义。你能告诉我们你在哪里定义了all\u results
变量吗?它试图从那里读取它,因为方法只是具有函数类型的属性将所有结果定义为数组,push方法是用于数组的。我刚刚编辑了包含所有结果定义的问题。您声明了所有结果
,但似乎从未给它赋值-因此它当然是未定义的
,这就是错误告诉你的。如果希望它保存数组,则必须在某个点指定适当的数组值。
let all_results;
try{
let query = 'myurl'
await page.goto(query, { waitUntil: "networkidle2" });
let max_pages = parseInt(await page.$eval('.pagination > li:nth-last-child(2) > a > .button__label', o => o.innerText));
for(let i = 1; i < max_pages+1; i++){
console.log('page ',i,' of ',max_pages);
try{
const result = await PageScraping(page, query);
query = `urlpage${i+1}`;
all_results.push(result);
console.log(all_results);
} catch(e){
console.log('ERROR: could not reach landing page',e.message);
}
}
} catch(error) {
console.log('ERROR: could not reach landing page',error.message);
} finally {
try{
await browser.close();
}catch(browser_error){
console.log('ERROR cant close browser??', browser_error.message)
}
}
}
let all_results = [];
try{
let query = 'myurl'
await page.goto(query, { waitUntil: "networkidle2" });
let max_pages = parseInt(await page.$eval('.pagination > li:nth-last-child(2) > a > .button__label', o => o.innerText));
for(let i = 1; i < max_pages+1; i++){
console.log('page ',i,' of ',max_pages);
try{
const result = await PageScraping(page, query);
query = `urlpage${i+1}`;
all_results.push(result);
console.log(all_results);
} catch(e){
console.log('ERROR: could not reach landing page',e.message);
}
}
} catch(error) {
console.log('ERROR: could not reach landing page',error.message);
} finally {
try{
await browser.close();
}catch(browser_error){
console.log('ERROR cant close browser??', browser_error.message)
}
}
}