实际上,我正在尝试使用节点从 ImDb 抓取任何电影,但是在我发出请求但在我的 output.JSON 文件中获取未定义(电影评分和评论应该出现的地方)之后。
首先,我向http://www.imdb.com/find?q='movie ' 发出请求,其中电影应该是动态的,以便我可以自己查询。然后取序列号。我正在向其 URL 发出请求以获取评分和评论
但是变得未定义...检查代码并更正它
var express = require('express');
var Cheerio = 要求(“cheerio”);
var request = require("request");
var fs = 需要('fs');
var app = express();
app.get('/scrape/:movie' , function(req, res) {
var movie = req.params.movie;
option = {
protocol : "http:",
host: "www.imdb.com",
pathname : "/find " ,
query: "q=movie"
}
// 这里我请求http://www.imdb.com/find?q= 'movie'
request(option,function(error,request,body) {
if(!error && response.statusCode == 200) {
var $ =cheerio.load(body);
var select=$(".result_text").attr("href");
}
});
// 这里我从 imdb 搜索中提取第一个找到的电影的序列号。
urls = "http://www.imdb.com/ + 'select' ";
request(urls, function(error,response,body) {
if(!error && response.statusCode == 200) {
var $ =cheerio.load(body);
var title, release, rating, review;
var json = { title : "",review : ""};
json.title =$(".title").text();
json.review= $(".reviewSection").text();
}
fs.writeFile('output.json', JSON.stringify(json, null, 7), function(error) {
if(!error)
console.log('File successfully written! - Check your project directory for the output.json file');
});
res.send('Check your console!');
});
}); app.listen(3000);