Web Crawler em Ruby com Open-URI e Nokogiri
Publicado por Daniel Vinciguerra (última atualização em 06/07/2016)
[ Hits: 4.774 ]
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
Exemplos de comentários e operadores de impressão na tela
Título: Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Site da gontijo simplesmente não abre, ERR_HTTP2_PRO... (0)
Linux Mint não conecta Wi-Fi sem fio (19)
mailreport não salva Configurações (2)