Я использую Cheerio для очистки https://www.snopes.com
Я пытаюсь получить дату статьи, но я получаю дату, повторяющуюся много раз, а иногда и другую дату для верности.
Источник показывает <span class = "date">9 May 2019</span>, но я получаю:
9 May 20199 May 20198 May 20198 May 20198 May 20199 May 20199 May 20198 May 20198 May 20198 May 20198 May 20197 May 20192 May 201923 April 201916 April 20193 May 20196 May 20196 May 20197 May 20192 May 20199 May 20199 May 20199 May 20199 May 20199 May 2019
const cheerio = require('cheerio');
const request = require('request');
request('https://www.snopes.com', function (error, response, html) {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(html);
const articleRows = $('.media-list .media-wrapper a');
const articleText = $(articleRows).children(".media-body-wrapper").children(".media-body");
articleText.each((i,el) => {
let articleDate = $(articleText).children("p").children(".date");
console.info(articleDate.text());
})
articleRows.each((i, el) => {
let imageURL = $(el).children(".featured-media").children("img").attr('data-lazy-src');
})
}
});
Как я могу получить именно то, что я вижу в источнике?





Проблема в том, что вы снова используете всю коллекцию: articleText, вы должны использовать текущий элемент итерации: el
articleText.each((i,el) => {
let articleDate = $(el).children("p").children(".date");
console.info(articleDate.text());
})