Я пытался что-то вроде веб-соскоба, и я не могу понять проблему, с которой я сейчас сталкиваюсь, что довольно легко, я полагаю.
То, что я хотел сделать, это получить каждое из названий продуктов отопределенный веб-сайт и распечатать их в формате JSON.Название каждого продукта становится очень ясным, когда я утешаю, но когда я пытаюсь использовать json, он показывает только первый элемент и выдает ошибку.Я полагаю, что существует какая-то асинхронная проблема, или, возможно, причина в том, что я забываю цикл перед печатью файла json, и он берет первый элемент 'title продукта' и печатает.
Спасибо за любой ответ.
Приветствия
var express = require('express'),
app = express(),
request = require('request'),
cheerio = require('cheerio')
port = process.env.PORT || 3000,
bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.get("/product", function(req, res){
request('someWebsite', (error, response, html) => {
if(!error && response.statusCode == 200) {
const $ = cheerio.load(html);
$('.product').each((i, el) => {
var productTitle = $(el)
.find('.product-name')
.text();
// console.log(productTitle);
res.send(
{
message:productTitle
}
);
})
}
});
});
app.listen(port, ()=>{
console.log('App is running on port' + port);
});