-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
28 lines (24 loc) · 974 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const cherrio = require('cheerio');
const fetch = require('node-fetch');
/**
* Consulta a página de rastreamento e retorna os dados do pacote
* @param {string|number} code
* @return {Promise} Dados do pacote em json
*/
async function scraping(code) {
const res = await fetch(`https://hmg.onlineapp.com.br/EDIv2_rastreioML/Rastreio/MercadoLivre?TrackingNumber=${code}`);
const $ = cherrio.load(await res.text());
const number = $('#numeroCotacao p span.fonteNormal').text();
const events = $('.timeline .timeline-item .timeline-content').map((i, el) => ({
status: $(el).find('.status').text().trim(),
date: $(el).find('.date').text().trim(),
location: $(el).find('> span').text().trim(),
})).get();
return { number, events };
}
/**
* Consulta todos os eventos de um pacote
* @param {string|number} code Código de rastreio do produto
* @return {Promise} Dados do do produto em json
*/
module.exports.allEvents = (code) => scraping(code);