Pregunta

En Python, estoy tratando de leer los valores en los http://utahcritseries.com/RawResults.aspx . ¿Cómo puedo leer otros años que el valor predeterminado de 2002?

Hasta ahora, el uso de mecanizar, he sido capaz de hacer referencia a la SELECT y una lista de todas sus opciones / valores disponibles, pero estoy seguro de cómo cambiar su valor y vuelva a enviar el formulario.

Estoy seguro de que este es un problema común y se le pide con frecuencia, pero no estoy seguro de lo que ni siquiera debería estar buscando.

¿Fue útil?

Solución

Así que tal esto:

from mechanize import Browser
year="2005"

br=Browser()
br.open("http://utahcritseries.com/RawResults.aspx")
br.select_form(name="aspnetForm")
control=br.form.find_control("ctl00$ContentPlaceHolder1$ddlSeries")
control.set_value_by_label((year,))
response2=br.submit()

print response2.read()

Otros consejos

Con los problemas relacionados con AJAX-carga de las páginas, utilice Firebug!

Instalar y Firebug abierta (es un plugin de Firefox), ir a la página de red, y asegúrese de que "todos" se ha seleccionado. Abrir la URL y cambiar el cuadro de selección, y ver lo que se envía al servidor, y lo que se recibe.

Parece que la ctl00$ContentPlaceHolder1$ddlSeries campo catchily-llamada es lo que es responsable .. ¿El siguiente trabajo ..?

import urllib

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

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

print src
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top