d
unknown
javascript
5 years ago
1.8 kB
5
Indexable
const cheerio = require("cheerio");
const superagent = require("superagent");
var axios = superagent.agent();
const siteUrl = "https://www.cermati.com";
const link = new Set();
const fetchData = async (link) => {
try {
const result = await axios.get(siteUrl + link);
return cheerio.load(result.text);
} catch (err) {
throw (err)
}
};
const getResults = async () => {
try {
const $ = await fetchData('/artikel');
$('div.list-of-articles').each((i, value) => {
$(value).find('div.article-list-item').each((j, data) => {
link.add($(data).find('a').attr('href'))
});
});
return [...link].sort()
} catch (err) {
throw (err)
}
};
const getResultDetails = async (link) => {
try {
const $ = await fetchData(link);
let url = "";
let title = "";
let author = "";
let postingDate = "";
const relatedArticles = new Set();
url = siteUrl + link;
title = $('h1.post-title').text().trim()
author = $('span.author-name').text().trim()
postingDate = $('span.post-date').children('span').text().trim()
$('div.col-lg-3 .margin-bottom-30').each((i, sidebar) => {
//i = 1 is Artikel Terkait
if (i === 1) {
$(sidebar).find('ul.panel-items-list li').each((i, related) => {
const urlRelated = siteUrl + $(related).find('li>a').attr('href');
const titleRelated = $(related).find('li a').children('h5.item-title').text();
relatedArticles.add({
"url": urlRelated,
"title": titleRelated
})
});
}
});
return {
url,
title,
author,
postingDate,
relatedArticles: [...relatedArticles].sort(),
};
} catch (err) {
throw (err)
}
}
module.exports = {
getResults,
getResultDetails
};Editor is loading...