WebScraping com Node.js
Publicação: | Tags: Node.js
WebScraping para quem não conhece, é uma técnica em que se extrai dados dentro de um documento, geralmente, documento HTML. Primeiro você analisa a estrutura de uma página para identificar padrões de dados que deseja extrair e em seguida faz um scraping disso.
Pra fazer essa magia, é necessário usar um framework para fazer request HTTP, eae com o resultado em mãos, que é uma string da página, você utiliza um framework para extrair informações, baseado num padrão de tags, class, ids ou outros elementos que você identificar na página.
No mundo Node.js, temos o módulo Request para solicitar uma página e o Cheerio para extrair dados das páginas. Só pra demonstrar um exemplo, vou mostrar como fazer um scraping para capturar todos os links da página inicial deste blog:
const URL = 'http://udgwebdev.com';
var request = require('request')
, cheerio = require('cheerio')
;
request(URL, function(err, res, body) {
if (err) {
console.log(err);
} else {
console.log('Scraping Links');
var $ = cheerio.load(body);
$('a').each(function(i, link) {
console.log('%s', $(link).attr('href'));
});
}
});
Uma coisa legal do Cheerio é que sua interface é praticamente um clone do jQuery, e isso é um ponto positivo para muitos desenvolvedores que já estão acostumados a usar este framework.