2016-05-09 11 views
1

私はnode.jsを初めて使用しています。私はevents_scraper.jsという名前のファイルを作成し、そのファイルにこのコードを置く:require node.jsでエラーSyntaxError:予期しない識別子

var request = require('request'); 
var cheerio = require('cheerio'); 
var fs = require('fs'); 
var regions = ['campania','molise','puglia','basilicata','sicilia','sardegna']; 
var domain = 'http://www.eventiesagre.it'; 
var basePath = 'http://www.eventiesagre.it/cerca/eventi/sagre/maggio/{{region}}/prov/cit/intit/rilib'; 

var result = 'path_to_folder{{region}}.json'; 

//start of scraper 
function getData(path, region) { 
    request(path, function (error, response, html) { 
     if (!error && response.statusCode == 200) { 
      var $ = cheerio.load(html); 

// research information for each events 
      var evt = { 
       categoria: $('.category').text().trim().replace(/\s\s+/g, ' '), 
       titolo: $('.summary').text(), 
       sottotitolo: $('.titolo').siblings('.testoxxsmall').text(), 
       dal: $('.dtstart').text(), 
       al: $('.dtend').text(), 
       tel: $('[alt="info evento"]').parent().next().text(), 
      }; 

      var email = $('[src="/template/originalBlu/images/comuni/mail - at.gif"]').siblings('a').first(); 
      if (email.length) { 
       evt.email = email.attr('href').split('mailto:')[1]; 
      } 

      var adr = $('.location .adr '); 
      adr.find('.testo10').remove(); 
      adr.find('.region').remove(); 

      evt.dove = adr.text().trim().replace(/\s\s+/g, ' '); 

      var linkSito = $('[src="/template/originalBlu/images/comuni/sito - www.gif"]').siblings('a'); 
      if (linkSito.length > 1) { 
       evt.sito = []; 
       linkSito.each(function(i, sito){ 
        evt.sito.push({ 
         url: $(sito).attr('href'), 
         nome: $(sito).text() 
        }); 
       }); 
      } else { 
       evt.sito = { 
        url: linkSito.attr('href'), 
        nome: linkSito.text() 
       }; 
      } 

      fs.appendFile(result.replace('{{region}}', region), JSON.stringify(evt) + '\n', function (err) { 
       if (err) return console.log(err); 
      }); 
      console.log(evt); 
     } 
    }); 
} 


function getStuff(path, region) { 
    request(path, function (error, response, html) { 
     if (!error && response.statusCode == 200) { 
      var $ = cheerio.load(html); 
      $('.vevent').each(function(i, element){ 
       var link = domain + $(element).find('.summary').attr('href'); 

       getData(link, region); 

      }); 

      var next = $('.elencoNav a:contains(Avanti)').first().attr('href'); 

      if(next) { 
       getStuff(next, region); 
      } 
     } 
    }); 
} 

regions.forEach(function(region){ 
    fs.writeFile(result.replace('{{region}}', region), ''); 

    getStuff(basePath.replace('{{region}}', region), region); 
}); 

その後、私は、アプリケーションを実行し、私はこのエラーを取得:

SyntaxError: Unexpected identifier 
    at Object.exports.createScript (vm.js:44:10) 
    at REPLServer.defaultEval (repl.js:117:23) 
    at bound (domain.js:254:14) 
    at REPLServer.runBound [as eval] (domain.js:267:12) 
    at REPLServer.<anonymous> (repl.js:279:12) 
    at REPLServer.emit (events.js:107:17) 
    at REPLServer.Interface._onLine (readline.js:214:10) 
    at REPLServer.Interface._line (readline.js:553:8) 
    at REPLServer.Interface._ttyWrite (readline.js:830:14) 
    at ReadStream.onkeypress (readline.js:109:10) 

このエラーが最初にコードによって引き起こされています生のvarリクエスト= require( 'request');

+0

'packet.json'ファイルはありますか? 'node_modules'フォルダはありますか? – galkin

+0

私はnode_modulesフォルダを持っていて、パケットではなくpackage.jsonというファイルを持っています。 –

+0

もちろん 'package.json'!このファイルの内容を取得できますか? – galkin

答えて

0

スクリプトの実行中にエラーが発生したようです。実行してくださいnode index.js。ファイル名がindex.jsでない場合は、変更してください。

+0

同じエラーが発生する –

関連する問題