UNPKG

@aidarkezio/main-func

Version:
34 lines (32 loc) • 1.39 kB
import got from 'got' import cheerio from 'cheerio' import type { Liputan6 } from './types' export default async function liputan6 (): Promise<Liputan6[]> { const html = await got('https://www.liputan6.com/').text() const $ = cheerio.load(html) const results: Liputan6[] = [] $('div.articles > div.articles--iridescent-list').each((i, el) => { $(el).find('article.articles--iridescent-list--item').each((i, el) => { const $el = $(el) const title = $el.find('span.articles--iridescent-list--text-item__title-link-text').text() const link = $el.find('a.ui--a[data-template-var="url"]').attr('href') const description = $el.find('div.articles--iridescent-list--text-item__summary').text() const $image = $el.find('picture.articles--iridescent-list--text-item__figure-image > img') const image = ($image.attr('src') || $image.attr('data-src') || $image.attr('data-high-dpi')) as string const label = $el.find('a.articles--iridescent-list--text-item__category').text() const $date = $el.find('time.articles--iridescent-list--text-item__time') const date = $date.attr('datetime') || $date.attr('title') || $date.text() if (title && link) { results.push({ title, link, image, description, label, date }) } }) }) return results }