gpt4 book ai didi

node.js - nodejs - writeFile 创建空文件

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:49 26 4
gpt4 key购买 nike

我正在尝试将我的 puppeteer 结果写入 txt,但我无法使其工作。 txt 已创建,但为空

我正在使用 process.exit,但不知道这是否是正确的方法

我知道 textContent 不为空,因为我可以通过控制台记录其内容

var https = require('https');
var Q = require('q');
var fs = require('fs');
var puppeteer = require('puppeteer');

const url = 'https://www.99freelas.com.br/projects'
/*const idToScrape;
deverá receber qual a url e os parametros específicos dela */
async function genScraper() {
const browser = await puppeteer.launch();
const page = await browser.newPage();

await page.goto(url);

var textContent = await page.evaluate(() => {
const ali = Array.from(document.querySelectorAll('.result-list li'));
return ali.map(li => li.textContent)
});

fs.writeFile('res.txt', textContent, (err) => {
if (err) throw err;
});

const innerText = await page.evaluate(() => {
const ali = Array.from(document.querySelectorAll('.result-list li'));
return ali.map(li => li.innerText);
});


process.exit();
}
//not used
function gravaArquivo(arquivo) {
var deferido = Q.defer();
fs.writeFileSync('resultado.txt', arquivo, function(err) {
deferido.resolve(true);
console.log('aqui estou')
});
return deferido.promise;
}

genScraper();

最佳答案

fs.writeFile() 是一个异步函数,因此 process.exit();fs.writeFile 完成之前执行。

您可以使用 writeFile 的用户同步版本:fs.writeFileSync() 或将 process.exit(); 放入回调中:

fs.writeFile('res.txt', textContent, (err) => {
if (err) throw err;
process.exit();
});

关于node.js - nodejs - writeFile 创建空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52028052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com