Python では、 http://utahcritseries.com/RawResults.aspxの値を読み取ろうとしています。デフォルトの 2002 年以外の年を読み取るにはどうすればよいですか?
これまでのところ、mechanize を使用して、SELECT を参照し、使用可能なすべてのオプション/値を一覧表示できましたが、その値を変更してフォームを再送信する方法がわかりません。
これは一般的な問題であり、頻繁に尋ねられると確信していますが、何を検索すればよいかさえわかりません。
Python では、 http://utahcritseries.com/RawResults.aspxの値を読み取ろうとしています。デフォルトの 2002 年以外の年を読み取るにはどうすればよいですか?
これまでのところ、mechanize を使用して、SELECT を参照し、使用可能なすべてのオプション/値を一覧表示できましたが、その値を変更してフォームを再送信する方法がわかりません。
これは一般的な問題であり、頻繁に尋ねられると確信していますが、何を検索すればよいかさえわかりません。
では、これはどうですか:
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()
ページの AJAX 読み込みに関する問題がある場合は、Firebug を使用してください。
Firebug (Firefox プラグイン) をインストールして開き、[ネット] ページに移動して、[すべて] が選択されていることを確認します。URL を開いて選択ボックスを変更し、サーバーに送信されるものと受信されるものを確認します。
キャッチーな名前のフィールドctl00$ContentPlaceHolder1$ddlSeries
が責任があるようです..次は機能しますか..?
import urllib
postdata = {'ctl00$ContentPlaceHolder1$ddlSeries': 9}
src = urllib.urlopen(
"http://utahcritseries.com/RawResults.aspx",
data = urllib.urlencode(postdata)
).read()
print src