15.6 - Scraping - Parsing

A tarefa de processar um HTML em busca de certos conteúdos é difícil de se executar utilizando apenas funções básicas de processamento de texto como buscas de palavras, substituições ou loops de leitura de caracteres.

Dois recursos são muito importantes no parsing de documentos HTML: seletores CSS e expressões regulares.

Seletor CSS

Para fazer parsing de HTML utilizando seletores CSS, utiliza-se um parser para Ruby chamado Nokogiri. Sua instalação pode ser realizada com o seguinte comando:

  gem install nokogiri

Veja no exemplo abaixo como seria o uso de seletores CSS usando o Nokogiri:

  require 'net/http'
  require 'nokogiri'

  # Download a product URL
  url = 'http://www.goldentoys.com.br/funko-pop-knightmare-batman'
  body = Net::HTTP.get(URI.parse(url))

  # Parse the body html with Nokogiri
  doc = Nokogiri::HTML(body)

  # Print the price of the product using CSS selector
  puts doc.css('meta[itemprop="price"]').first.attr(:content)

Expressões regulares (regex)

Expressões regulares são úteis para extrair conteúdos que seguem um certo padrão em um texto.

Ferramenta online para testar expressão regular em Ruby: rubular.