0
I can name every line on the url list, to return the nickname I gave her?
Like that was the result:
Prefeitura Municipal de Bocaiúva do Sul | PRONIM TB 518.01.07-013 |
Prefeitura Municipal de Matinhos | PRONIM TB 518.01.04-000 |
| PRONIM TB 518.01.07-012 |
Prefeitura Municipal de Castanhal | PRONIM TB 518.01.07-012 |
In such cases I know which site is because the parameter on the site is ok
But there are cases like the second to last line that does not have on the site and does not have where I search, however I know where it is because I have the link site.
Is it possible to set a different name for each url as if to name each url and at the time of pulling the file bring that nickname?
the Code is this:
const cheerio = require('cheerio');
const { get } = require('request');
const { writeFileSync } = require('fs');
const { promisify } = require('util');
// Transforma o "get" em uma função que retorna uma promessa
const promisedGET = promisify(get);
const visitar = async uri => {
const { statusCode, body } = await promisedGET({ uri, encoding: 'binary' });
// Retorna um erro caso o status seja diferente de 200
if (statusCode !== 200) throw new Error(body);
return { body };
}
const ler = async ({ body }) => {
const $ = cheerio.load(body);
const cliente = $('table.Class_Relatorio tr:nth-of-type(4) > td:nth-of-
type(2)').text().trim();
const versao = $('table.Class_Relatorio tr:nth-of-type(1) > td:nth-of-
type(1)').text().trim();
return { cliente, versao };
}
const executar = async urls => {
// Faz requisições para todos os sites da lista
const paginas = await Promise.all(urls.map(url => visitar(url)));
// Lê as páginas retornadas e transforma em objetos
const linhas = await Promise.all(paginas.map(conteudo => ler(conteudo)));
// Transforma as linhas em uma string de conteúdo
const conteudo = linhas.map(({ cliente, versao }) => `${cliente} | ${versao}
|`).join('\n');
// grava o conteúdo no arquivo
writeFileSync('versao.txt', conteudo);
return conteudo;
}
// Exemplo da chamada da função principal
(async () => {
// Inicia o timer
console.time('Execução');
try {
await executar([
]);
} catch (err) {
console.log(err)
}
// Totaliza o tempo de execução
console.timeEnd('Execução');
})();
I was just changing on the run. Perfect :) Thank you
– jackbauer