2009-04-20 6 views
1

En Python, j'essaie de lire les valeurs sur http://utahcritseries.com/RawResults.aspx. Comment puis-je lire des années autres que le défaut de 2002? Jusqu'ici, en utilisant mécanize, j'ai été capable de référencer le SELECT et de lister toutes ses options/valeurs disponibles mais je ne sais pas comment changer sa valeur et soumettre à nouveau le formulaire. Je suis sûr que c'est un problème commun et est fréquemment demandé, mais je ne suis pas sûr de ce que je devrais même rechercher.Python sélectionnant une valeur dans une zone de liste modifiable et HTTP POST

+0

Il semble être une sorte de chose de type échafaudage ASP.NET, car le code est très généré par ordinateur. Peut-être un peu de reformulation pourrait aider, quelque chose comme "Obtenir des données de l'application AJAX ASP.NET" ..? – dbr

Répondre

1

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

Avec des problèmes liés à 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 modifiez la zone de sélection, et voyez ce qui est envoyé au serveur, et ce qui est reçu.

Apparemment, c'est le champ ctl00$ContentPlaceHolder1$ddlSeries qui a la charge du tir .. Le travail suivant est-il ..?

import urllib 

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

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

print src 
+0

Non, ça ne marche pas - quand j'imprime src, je vois encore les valeurs de 2002. J'ai essayé quelque chose de similaire (mais BEAUCOUP plus de lignes;) - Je suis juste une recrue) –

Questions connexes