2009-04-24 12 views
5

Utilizzando Python, sto cercando di leggere i valori su http://utahcritseries.com/RawResults.aspx. Riesco a leggere bene la pagina, ma ho difficoltà a modificare il valore della casella combinata del valore dell'anno, per visualizzare i dati degli altri anni. Come posso leggere i dati per anni diversi dal default del 2002?Dati di acquisizione da Python da un'applicazione asp.net AJAX

La pagina sembra eseguire un post HTTP una volta che la casella combinata dell'anno è stata modificata. Il nome del controllo è ct100 $ ContentPlaceHolder1 $ ddlSeries. Provo a impostare un valore per questo controllo usando urllib.urlencode (postdata), ma devo fare qualcosa di sbagliato: i dati sulla pagina non cambiano. Questo può essere fatto in Python?

Preferirei non usare il selenio, se possibile.

Sto usando il codice come questo (da dbr utente StackOverflow)

import urllib 

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

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

print src 

, ma sembra essere tirando sugli stessi dati del 2002. Ho provato a usare firebug per ispezionare le intestazioni e vedo molti dati estranei e dall'aspetto casuale che vengono inviati avanti e indietro, devo anche riportare questi valori sul server?

risposta

3

Utilizzare l'eccellente mechanize libreria:

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 è accessibile PyPI: easy_install mechanize

+0

grazie! Ha funzionato subito fuori dagli schemi! Sono nuovo sia per python che per meccanizzare - non ero sicuro di dove leggere per questo. Grazie mille! –

+0

Se è necessario analizzare l'HTML, è necessario consultare la libreria BeautifulSoup. Mechanize + bella zuppa è formidabile per screen-scraping. http://www.crummy.com/software/BeautifulSoup/ – codeape

Problemi correlati