我正在尝试制作一个简单的nodeJS webscraper,但我不知道如何在 Json 文件中格式化我的结果。
我正在使用express、request、cheerio和fs。
这是我的代码:
var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
var app = express();
var url = 'http://www.footmercato.net/';
request(url, function(err, resp, body) {
if (!err) {
var $ = cheerio.load(body);
var json = { title : "", article : "", date : "" };
var article = $('.text p');
var articleTxt = article.text();
json.article = articleTxt;
}
JSON.stringify(json);
})
app.listen('8080');
当我启动这个程序时没有发生任何事情,它在 JSON.stringify(json);
有人知道怎么解决吗?
最佳答案
您需要将 stringify 函数放在回调中,然后将字符串写入文件。如果该函数位于回调之外,则您要转换的 JavaScript 对象尚未创建
顺便说一句,JavaScript 对象不是 JSON。我更改了下面的定义。
request(url, function(err, resp, body) {
if (!err) {
var $ = cheerio.load(body);
var jsObject = { title : "", article : "", date : "" };
var article = $('.text p');
var articleTxt = article.text();
jsObject.article = articleTxt;
var json = JSON.stringify(jsObject);
fs.writeFileSync('path/to/file', json);
}
关于json - WebScraper 和 Json 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41589238/