2009-04-24 4 views
5

Mit Python, versuche ich, die Werte auf http://utahcritseries.com/RawResults.aspx zu lesen. Ich kann die Seite gut lesen, habe aber Schwierigkeiten, den Wert des Jahr-Kombinationsfelds zu ändern, um Daten aus anderen Jahren anzuzeigen. Wie kann ich die Daten für andere Jahre als den Standard von 2002 lesen?Python-bekommen Daten von einer asp.net AJAX-Anwendung

Die Seite scheint einen HTTP-Beitrag zu erstellen, sobald das Jahr-Kombinationsfeld geändert wurde. Der Name des Steuerelements lautet ct100 $ ContentPlaceHolder1 $ ddlSeries. Ich versuche, einen Wert für dieses Steuerelement mit urllib.urlencode (postdata) festlegen, aber ich muss etwas falsch machen - die Daten auf der Seite ändert sich nicht. Kann dies in Python gemacht werden?

Ich würde es vorziehen, nicht Selen zu verwenden, wenn überhaupt möglich.

Ich habe wie dies mit Code (von Stackoverflow Benutzer dbr)

import urllib 

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

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

print src 

aber scheint die gleichen Daten für 2002 nach oben ziehen zu werden. Ich habe versucht, Firebug zu verwenden, um die Header zu überprüfen, und ich sehe viele irrelevante und zufällig aussehende Daten, die hin und her gesendet werden - muss ich diese Werte auch zurück an den Server senden?

Antwort

3

Verwenden Sie die ausgezeichnete mechanize Bibliothek:

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 auf PyPI verfügbar: easy_install mechanize

+0

Dank! Das hat sofort funktioniert! Ich bin neu in python und mechanize - ich war mir nicht sicher, wo ich das lesen sollte. Vielen Dank! –

+0

Wenn Sie den HTML-Code analysieren müssen, sollten Sie sich die BeautifulSoup-Bibliothek ansehen. Mechanize + schöne Suppe ist hervorragend für Screen-Scraping. http://www.crummy.com/software/BeautifulSoup/ – codeape

Verwandte Themen