Skip to content
This repository has been archived by the owner on Nov 7, 2019. It is now read-only.

ache te te pe

rob edited this page Sep 2, 2014 · 1 revision

Tenemos dos métodos que nos ayudan a hacer requests de HTTP y hacer parsing del HTML que nos regrese la cámara.

request

Con este podemos hacer un request a la vez, y nos regresa el body del request al bloque que le pasemos, por ejemplo:

# encoding: utf-8

require_relative '../common.rb'

request('http://tucongreso.gob.mx/') do |data|
    puts data #=> <html><head></head><body><p>Hola, burocracia!</p></body></html>
end

Crawler

Con este podemos mandarle un array de requests y un endpoint para ejecutarlos de manera paralela, con un bloque a ejecutarse con cada respuesta, por ejemplo:

# encoding: utf-8

require_relative '../common.rb'

requests = [{id: 1}, {id: 2}]
# {{id}} será remplazado por el key `id ` de cada `requests`
actores = Crawler.new "http://tucongreso.gob.mx/diputados/{{id}}"
actores.requests = requests

actores.run do |response, request|
    # Acá sucede la magia, y tenemos a disposición los datos del request y del response
    puts request #=> {id: 1, url: "http://tucongreso.gob.mx/diputados/1"}
    puts response #=> <html><head></head><body><p>Hola, burocracia!</p></body></html>
end
Clone this wiki locally