d
unknown
javascript
4 years ago
1.8 kB
4
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...