Web Crawler em Ruby com Open-URI e Nokogiri
Publicado por Daniel Vinciguerra (última atualização em 06/07/2016)
[ Hits: 4.691 ]
Homepage: http://bivee.com.br
Você já precisou acessar algum site na web para obter alguma informação usando Ruby?
Esse tipo de cenário é bem comum e não é difícil que tenhamos esse tipo de necessidade em um projeto, seja para servir a informação em questão ou para utiliza-la no desenvolvimento do projeto.
Para esse tipo de necessidade este script vai apresentar dois módulos Ruby, o primeiro é o "open-uri" que serve para acessar o conteúdo publicado na web (html, js, css, etc...), e o segundo é o "nokogiri" que nos permite acessar os elementos do html/xml, usando com seletores baseados em XPath ou CSS.
PRÉ-REQUISITOS
- ruby
- Módulo open-uri e nokoguiri instalado
REFERÊNCIAS
http://ruby-doc.org/stdlib-2.2.0/libdoc/open-uri/rdoc/OpenURI.html
https://rubygems.org/gems/nokogiri
EXECUTANDO
$ ruby web-crawler.rb
#!/usr/bin/env ruby # 2016 (c) Daniel Vinciguerra # importa os modulos require 'open-uri' require 'nokogiri' # obtém o html da pagina html = open 'https://www.vivaolinux.com.br' puts "LISTA DOS ULTIMOS SCRIPTS" puts '=' * 60 # efetua o parse do html doc = Nokogiri::HTML(html) id = 1 # seleciona os elementos usando css selector doc.css('div#scripts > .media').each do |d| # imprime as informações encontradas puts "\n#{id} - " + d.at_css('h3').content puts "Escrito por: " + d.at_css('em').content id += 1 end
Exemplo de utilização de métodos em Ruby
Obtendo o IP público (Internet) usando o Ruby
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (12)