我正在使用puppeteer制作scraper,并且我制作了js脚本,该脚本将一些数据存储在数组中(并且当我在浏览器的控制台中使用它时,它可以工作)...但是当我尝试使用fs将其存储在JSON文件中时。 writeFileSync我出错了...这种方式在我使用nightmare.js制作的同一刮板中有效。 我以为我以错误的方式传递了数组(对于操纵up),并且我不确定该怎么做。 有问题的代码:
await page.addScriptTag({path: 'script.js'}).then((array) => { fs.writeFileSync('data'+i+'.json', JSON.stringify(array));
console.log(array); })
谢谢!
答案 0 :(得分:1)
addScriptTag
不返回脚本结果,而是ElementHandle
代表生成的SCRIPT
标签。
您可以做的是添加该脚本标记,公开一个函数,然后使用评估函数调用该函数:
await page.addScriptTag({path: 'script.js'});
const array = await page.evaluate(() => someFunction());
await fs.writeFileSync('data'+i+'.json', JSON.stringify(array);