Petición: recolección de correos para cotización de mixer

6 views
Skip to first unread message

Renich Bon Ciric

unread,
Jul 6, 2016, 7:35:00 PM7/6/16
to linux...@googlegroups.com
Linuxer@s,

Un paro.

Últimamente, tengo mucha chamba, pero quiero cotizar una mezcladora behringer.

En esta página:
http://www.music-group.com/brand/behringer/store-finder?type=STORE,
tras seleccionar "Mexico", te salen todas las tiendas, con un link a
la info completa; la cual contiene el correo.

Si alguien me pudiera ayudar haciendo un script para recolectarlos,
estaría genial. Yo lo he hecho con Ruby y mechanize. No es difícil,
pero tengo rato que no le muevo y no tengo chance de buscarle
últimamente.

Ojalá y alguien me pueda hacer el paro. Lo pueden hacer con lo que
quieran. Yo solo quiero los correos de todas las tiendas que salen
ahí.

Si fuese un script,. mucho mejor porque nos sirve para actualizar la lista.

Si alguien me ayuda, le agradezco mucho. Es una buena oportunidad para
probar tus skills de scripting en algo muy útil par un compañero
Linuxito.

--
It's hard to be free... but I love to struggle. Love isn't asked for;
it's just given. Respect isn't asked for; it's earned!
Renich Bon Ciric

http://www.woralelandia.com/
http://www.introbella.com/

Rene Bon Ciric

unread,
Jul 6, 2016, 7:42:18 PM7/6/16
to LinuxCabal
El código que usé para ésto fue:

#!/usr/bin/env ruby

require "bundler/setup"
Bundler.require

website = ARGV[0]

agent = Mechanize.new do |a|
    a.follow_meta_refresh = true
    a.user_agent_alias = 'Linux Firefox'
end

begin
    page = agent.get( website )
rescue Exception => e
    puts "There was an error with the following website: #{website}"
    puts

    raise e
else
    emails = page.body.scan( /[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}(?:\.[a-z]{2})?/ ).uniq!
    emails.each { |e| puts e } unless emails.nil?
end

exit( 0 )

Y su Gemfile:


gem 'json'
gem 'mechanize'

Para instalarlo, pones el código en scrap-e y la Gemfile tal cual. Luego, correos: bundle

Un ejemplo de esta cosa jalando:

Reply all
Reply to author
Forward
0 new messages