Skip to content

Instantly share code, notes, and snippets.

@mariochavez
Last active November 29, 2015 02:54
Show Gist options
  • Save mariochavez/d9a485e8f1502583c647 to your computer and use it in GitHub Desktop.
Save mariochavez/d9a485e8f1502583c647 to your computer and use it in GitHub Desktop.
Ejemplo de uso de Mechanize para scrappear páginas de ASP.NET
require 'mechanize'
require 'json'
HIDALGO_ID = 13
agent = Mechanize.new
agent.get('http://tablerocronicas.info/DirApp/tableros/OSicDetIntro.aspx')
selector = agent.page.at('#Contenedor_Master_cboEntidad')
state_selector = selector.attributes['name'].value
form = agent.page.forms[0]
form[state_selector] = HIDALGO_ID
page = form.submit
data = {
updated_at: Time.parse(page.at('#Contenedor_Master_lblFecSIC').inner_text),
sample: {
consultas: page.at('#Contenedor_Master_lblPacAten').inner_text.to_i,
centro: page.at('#Contenedor_Master_lblUnidadesSalud').inner_text.to_i
},
sex_distribution: {
female: page.at('#Contenedor_Master_lblporcM').inner_text.to_f,
male: page.at('#Contenedor_Master_lblporcH').inner_text.to_f
},
totals: {
diabetes: page.at('#Contenedor_Master_lblDM2Total').inner_text.sub(',', '').to_i,
hipertension: page.at('#Contenedor_Master_lblHTATotal').inner_text.sub(',', '').to_i,
obesidad: page.at('#Contenedor_Master_lblObeTotal').inner_text.sub(',', '').to_i,
displidemia: page.at('#Contenedor_Master_lblDlpTotal').inner_text.sub(',', '').to_i
},
source: 'http://tablerocronicas.info/DirApp/tableros/OSicDetIntro.aspx'
}
puts JSON.generate(data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment