2009-04-24 11 views
5

Usando Python, estoy tratando de leer los valores en http://utahcritseries.com/RawResults.aspx. Puedo leer la página muy bien, pero estoy teniendo dificultades para cambiar el valor del cuadro combinado del año, para ver datos de otros años. ¿Cómo puedo leer los datos de años que no sean los predeterminados de 2002?Obtener datos de Python de una aplicación asp.net AJAX

Parece que la página está haciendo una publicación HTTP una vez que ha cambiado el cuadro combinado del año. El nombre del control es ct100 $ ContentPlaceHolder1 $ ddlSeries. Intento establecer un valor para este control usando urllib.urlencode (postdata), pero debo estar haciendo algo mal: los datos en la página no cambian. ¿Se puede hacer esto en Python?

Preferiría no utilizar Selenium, si es posible.

He estado usando código como este (de DBR usuario stackoverflow)

import urllib 

postdata = {'ctl00$ContentPlaceHolder1$ddlSeries': 9} 

src = urllib.urlopen(
    "http://utahcritseries.com/RawResults.aspx", 
    data = urllib.urlencode(postdata) 
).read() 

print src 

pero parece estar tirando hacia arriba de los mismos datos de 2002. He intentado usar firebug para inspeccionar los encabezados y veo que se envían y reciben muchos datos extraños y aleatorios. ¿Debo publicar también estos valores en el servidor?

Respuesta

3

uso de la excelente biblioteca mechanize:

from mechanize import Browser 

b = Browser() 
b.open("http://utahcritseries.com/RawResults.aspx") 
b.select_form(nr=0) 

year = b.form.find_control(type='select') 
year.get(label='2005').selected = True 

src = b.submit().read() 
print src 

Mechanize está disponible en PyPI: easy_install mechanize

+0

gracias! Eso funcionó de la caja! Soy nuevo en python y mechanize, no estaba seguro de dónde leer para esto. ¡Gracias un montón! –

+0

Si necesita analizar el código HTML, debe consultar la biblioteca de BeautifulSoup. Mecanizar + hermosa sopa es excelente para raspar la pantalla. http://www.crummy.com/software/BeautifulSoup/ – codeape

Cuestiones relacionadas