Python Auswahl eines Wertes in einem Kombinationsfeld und HTTP-POST
-
12-09-2019 - |
Frage
In Python, ich versuche, die Werte auf http://utahcritseries.com/RawResults.aspx zu lesen . Wie kann ich lesen Jahre andere als der Standard 2002?
Bisher mit mechanisieren, ich habe in der Lage, die SELECT und listen alle seine verfügbaren Optionen / Werte zu verweisen, aber bin nicht sicher, wie der Wert zu ändern und das Formular erneut.
Ich bin sicher, dass dies ein weit verbreitetes Problem und häufig gefragt wird, aber ich bin nicht sicher, was ich soll auch für sein zu suchen.
Lösung
So wie etwa diese:
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()
Andere Tipps
Bei Problemen in Zusammenhang mit AJAX-Laden der Seiten, verwenden Sie Firebug!
Installieren und offene Firebug (es ist ein Firefox-Plugin), auf die Net-Seite gehen, und stellen Sie sicher, „Alle“ ausgewählt ist. Öffnen Sie die URL und ändern Sie das Auswahlfeld, und sehen, was an den Server gesendet wird, und dem, was empfangen wird.
Es scheint, die catchily genannten Feld ctl00$ContentPlaceHolder1$ddlSeries
ist, was verantwortlich ist .. Ist die folgende Arbeit ..?
import urllib
postdata = {'ctl00$ContentPlaceHolder1$ddlSeries': 9}
src = urllib.urlopen(
"http://utahcritseries.com/RawResults.aspx",
data = urllib.urlencode(postdata)
).read()
print src