我试图创建一个简单的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);
有谁知道如何修复它?
答案 0 :(得分:0)
您需要将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);
}