WebScraper和Json格式

时间:2017-01-11 11:06:44

标签: json node.js web-scraping cheerio

我试图创建一个简单的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);

之前工作

有谁知道如何修复它?

1 个答案:

答案 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);

 }