Um dia desses, surgiu a necessidade de fazer um web scraping, que consiste básicamente em extrair informações de um determinado site.
Geralmente eu desenvolveria algo em PHP, a linguagem que mais trabalho no dia a dia atualmente. Mas como estou me dedicando a novas tecnologias, resolvi desenvolver isso em javascript, então, lembrei do nodejs.
Só para titulo de curiosidade, caso eu fizesse isso em PHP, usaria uma biblioteca muito boa, a phpQuery, se tiver dúvidas, basta seguir esse tutorial.
Mas, como estamos falando de javascript (nodejs), vamos usar os seguintes componentes:
No exemplo que vamos fazer a seguir, vai buscar o titulo e a url do post do meu blog, mas pode ser usado em qualquer site. O código dessa aplicação é extremamente simples, ficaria assim:
const URL = 'http://renanmpimentel.github.io';
var request = require('request');
var cheerio = require('cheerio');
request(URL, function (err, resp, body) {
if (!err) {
var $ = cheerio.load(body);
var info = [];
$('article h2 a').map(function (i, links) {
var text = $(links).text(),
link = $(links).attr('href');
info.push({
link: URL + link,
desc: text
});
});
console.log(info);
}
});
A resposta esperada no terminal deve ser a seguinte:

Você pode fazer o download do exemplo aqui, e caso tenha alguma dúvida deixe um comentário.