koleksi-api
Version:
55 lines (52 loc) • 2.49 kB
JavaScript
const axios = require('axios');
const cheerio = require('cheerio');
function kompasnews() {
return new Promise((resolve, reject) => {
axios.get(`https://news.kompas.com/`)
.then(({
data
}) => {
const $ = cheerio.load(data)
const hasil = [];
$('body > div > div.container.clearfix > div:nth-child(3) > div.col-bs10-7 > div:nth-child(3) > div.latest.ga--latest.mt2.clearfix > div > div ').each(function(a, b) {
result = {
status: 200,
berita: $(b).find('> div > div.article__box > h3').text(),
upload_time: $(b).find('> div > div.article__box > div.article__date').text(),
type_berita: $(b).find('> div > div.article__boxsubtitle > h2').text(),
link: $(b).find('> div > div.article__box > h3 > a').attr('href'),
thumbnail: $(b).find('> div > div.article__asset > a > img').attr('data-src'),
info_berita: $(b).find('> div > div.article__box > div.article__lead').text()
}
hasil.push(result)
})
resolve(hasil)
})
.catch(reject)
})
}
function inews() {
return new Promise((resolve, reject) => {
axios.get(`https://www.inews.id/news`)
.then(({
data
}) => {
const $ = cheerio.load(data)
const hasil = [];
$('#news-list > li ').each(function(a, b) {
result = {
status: 200,
berita: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > div.title-news-update.padding-0px-top').text().trim(),
upload_time: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > div.date.margin-10px-left').text().trim().split('|')[0],
link: $(b).find('> a').attr('href'),
thumbnail: $(b).find('> a > div > div > div.float-left.width-130px.position-absolute > img').attr('data-original'),
info_berita: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > p').text()
}
hasil.push(result)
})
resolve(hasil)
})
.catch(reject)
})
}
module.exports = { kompasnews, inews }