Question

En Python, je suis en train de lire les valeurs sur http://utahcritseries.com/RawResults.aspx . Comment puis-je lire des années autres que la valeur par défaut de 2002?

Jusqu'à présent, en utilisant mécaniser, je suis en mesure de faire référence à la commande SELECT et la liste de toutes ses options disponibles / valeurs, mais ne suis pas sûr comment changer sa valeur et soumettre à nouveau le formulaire.

Je suis sûr que c'est un problème commun et est souvent demandé, mais je ne suis pas sûr de ce que je même être à la recherche.

Était-ce utile?

La solution

Alors que diriez-vous:

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()

Autres conseils

Avec les problèmes relatifs à AJAX-chargement des pages, utilisez Firebug!

Installer et Firebug ouvert (c'est un plugin Firefox), allez à la page Net, et assurez-vous « All » est sélectionné. Ouvrez l'URL et changer la boîte de sélection, et voir ce qui est envoyé au serveur, et ce qui est reçu.

Il semble que le champ catchily nommé ctl00$ContentPlaceHolder1$ddlSeries est ce qui est responsable .. Est-ce que les travaux suivants ..?

import urllib

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

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

print src
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top