fs.writeFile创建空文件(node.js)

sdexp

我正在尝试使用node.js,cheerio和puppeteer编写抓取脚本。

我目前遇到的问题是试图使该writeFile()功能正常工作。

const puppeteer = require('puppeteer');
const $ = require('cheerio');
const fs = require('fs');
const url = 'https://www.made-up-url.com/';

puppeteer
    .launch()
    .then(function(browser) {
        return browser.newPage();
    })
    .then(function(page) {
        return page.goto(url).then(function() {
            return page.content();
        });
    })
    .then(function(html) {
        let scrapedTitle = $('h1', html).each(function() {
            return $(this).text();
        });
        let scrapedDesc = $('#something-else > div > p', html).each(function() {
            return $(this).text();
        });

        // Both console logs are outputted as strings, as expected
        console.log(scrapedTitle[0].children[0].data); // "Some title"
        console.log(scrapedDesc[0].children[0].data); // "The description is like this."

        fs.writeFile("data.json", JSON.stringify(scrapedTitle[0].children[0].data), 'utf8', function(err) {
            if(err) {
                return console.log(err);
            }
            console.log("The data has been scraped and saved successfully! View it at './data.json'");
        });

        process.exit();
    })
    .catch(function(err) {
        console.log(err);
        process.exit();
    });

writeFile()过去曾使用过类似的东西fs.writeFile("data.json", JSON.stringify(html), 'utf8', function(err) {,但现在似乎也没有用。当我运行此脚本时,将按预期方式创建文件,但该文件始终为空,即使两者都console.log()显示应该写入有效的字符串也是如此。没有错误。有什么想法吗?

甘加达尔

您在下面的行中,Theprocess.exit();正在关闭文件写操作之前的过程:

fs.writeFile("data.json", JSON.stringify(scrapedTitle[0].children[0].data), 'utf8', function (err) {
    if (err) {
        return console.log(err);
    }
    console.log("The data has been scraped and saved successfully! View it at './data.json'");
});

process.exit();

您可以将其更改为如下所示,以便在关闭文件之前完成文件写入操作:

fs.writeFile("data.json", JSON.stringify(scrapedTitle[0].children[0].data), 'utf8', function(err) {
    if(err) {
        return console.log(err);
        process.exit();        
    }
    console.log("The data has been scraped and saved successfully! View it at './data.json'");
    process.exit();
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.js fs.writeFile未完全覆盖文件

来自分类Dev

Node.js fs.writeFile()未覆盖文件

来自分类Dev

Node JS中的fs.writeFile

来自分类Dev

node.js 使用 fs.writeFile - 如何在文件 (\n) 中强制换行?

来自分类Dev

Node.js'fs'-创建文件+清除文件的更有效方法

来自分类Dev

Node.js'fs'-创建文件+清除文件的更有效方法

来自分类Dev

Node.js fs.FSWatcher

来自分类Dev

node.js npm安装fs错误

来自分类Dev

Node.js'fs'方法异步运行

来自分类Dev

Node.js FS 保存对象

来自分类Dev

如何使用node.js确保fs.writeFile之前存在所有目录

来自分类Dev

如何使用 node js util.promisify 和 writeFile fs 函数并等待

来自分类Dev

Node.js不关闭由fs.createReadStream()创建的文件

来自分类Dev

无法使用 Node.js fs.appendFile 创建文件

来自分类Dev

为什么Node fs.writeFile()方法成功,但是将一个空文件发送到浏览器?

来自分类Dev

Node.js使用fs.readFileSync读取大文件

来自分类Dev

在Node JS中使用fs-extra更新xml文件

来自分类Dev

Node.js:使用fs.writeFileSync写入系统文件

来自分类Dev

无法使用fs Node.js读取文件

来自分类Dev

fs.writeFileSnyc/fs.writeFile 写入损坏的文件

来自分类Dev

如何使用node.js的fs.write函数?

来自分类Dev

Node.JS fs.readFileSync()错误参数

来自分类Dev

浏览器中的Node JS fs模块

来自分类Dev

在Pushkin安装中找不到Node.js fs模块

来自分类Dev

返回到node.js中的目录(fs.readFileSync)

来自分类Dev

TypeError:使用Node.js fs.read()的错误参数

来自分类Dev

Node.js Fs:检测outStream完成编写的时间

来自分类Dev

Node JS - 我不能同步使用 FS.Stat

来自分类Dev

使用 fs.appendFile 打印的 Node js undefined

Related 相关文章

热门标签

归档