2017-11-17 8 views
-2

私は構築したスクレーパー用にこのコードを実行しようとしていますが、構文エラーメッセージが表示され続けます。誰かが私が間違って何を入れるのかを助けてくれますか?または私は何かを閉じませんでしたか?私はこれら外国映画の出身国を抽出するスクレーパーを作ろうとしています。ここで誰かがコードを見て、何か不足しているかどうか確認できますか?

は私のコード

var util = require("util"), 
    async = require("async"), 
config = require(__dirname + "/config.js"), 
    _ = require("lodash"), 
    cheerio = require("cheerio"), 
    request=require("request"), 
    models = require(__dirname + "/models/index.js").models.autoLoad(); 


/* BEGIN SCRAPER HERE */ 
var request = require('request'), 
    cheerio = require('cheerio'); 

var url = "http://www.imdb.com/list/ls057160363/"; 

request(url, function (err, resp, code) { 
var $ = cheerio.load(code); 

    request(url, function (err, resp, code) { 
     var $ = cheerio.load(code); 
     console.log(url); 
     $(".info").each(function() { 
      var a = $(this).find("a").eq(0); 
      var title = a.text(); 
      var url = "https://www.imdb.com/" + a.attr("href"); 

      request(url, function(err, body, code) {details page 
       var $ = cheerio.load(code); 
       console.log(url); 
       var country = $('#titleDetails.txt-block a').html(); 
       var country = $("#titleDetails div").first().text().trim().split(":"); 
       var country = $("#titleDetails div").eq(0).text().trim().split(":"); 
       //check if not empty 
       console.log(country); 
       if(country.length) 
       if(country[0] == "Country") 
        country = country[1].trim(); 
       else{ 
        country = $("#titleDetails div").eq(1).text().trim().split(":"); 
        console.log(country); 
        if(country.length) 
        country = country[1].trim(); 
        else 
        country = "" 
        }; 

そして、ここではエラーである:

SyntaxError: Unexpected identifier at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:139:10) at Module._compile (module.js:588:28) at Object.Module._extensions..js (module.js:635:10) at Module.load (module.js:545:32) at tryModuleLoad (module.js:508:12) at Function.Module._load (module.js:500:3) at Function.Module.runMain (module.js:665:10) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:607:3

+0

どのようなエラーが表示されますか?投稿にエラーメッセージを追加してください。 – vibhor1997a

+2

デバッグヘルプ(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。 vibhor1997a @ – Jer

+0

これは – aoconnelld

答えて

0

あなたが最後にいくつかのブラケットを逃し、 "詳細ページ" していたこの

var util = require("util"), 
    async = require("async"), 
    config = require(__dirname + "/config.js"), 
    _ = require("lodash"), 
    cheerio = require("cheerio"), 
    request = require("request"), 
    models = require(__dirname + "/models/index.js").models.autoLoad(); 


/* BEGIN SCRAPER HERE */ 
var request = require('request'), 
    cheerio = require('cheerio'); 

var url = "http://www.imdb.com/list/ls057160363/"; 

request(url, function (err, resp, code) { 
    var $ = cheerio.load(code); 

    request(url, function (err, resp, code) { 
     var $ = cheerio.load(code); 
     console.log(url); 
     $(".info").each(function() { 
      var a = $(this).find("a").eq(0); 
      var title = a.text(); 
      var url = "https://www.imdb.com/" + a.attr("href"); 

      request(url, function (err, body, code) { 
       //details page 
       var $ = cheerio.load(code); 
       console.log(url); 
       var country = $('#titleDetails.txt-block a').html(); 
       var country = $("#titleDetails div").first().text().trim().split(":"); 
       var country = $("#titleDetails div").eq(0).text().trim().split(":"); 
       //check if not empty 
       console.log(country); 
       if (country.length) 
        if (country[0] == "Country") 
         country = country[1].trim(); 
        else { 
         country = $("#titleDetails div").eq(1).text().trim().split(":"); 
         console.log(country); 
         if (country.length) 
          country = country[1].trim(); 
         else 
          country = "" 
        } 
      }); 
     }); 
    }); 
}); 

をお試しくださいコメントではなかったものはコメントではありませんでした。

関連する問題