2009-04-20 12 views
1

Pythonでは、http://utahcritseries.com/RawResults.aspxの値を読み取ろうとしています。 2002年のデフォルト以外の年はどうやって読むことができますか?コンボボックスとHTTP POSTで値を選択しているPython

これまでのところ、私はSELECTを参照して使用可能なすべてのオプション/値を一覧表示できましたが、値を変更してフォームを再送信する方法がわかりません。

これは一般的な問題であり、頻繁に尋ねられますが、私は何を探しているべきかわかりません。ページのAJAXローディングに関連する問題に

+0

コードは非常にコンピュータ生成に見えることから、ASP.NET足場型のもののいくつかの種類のようです。おそらく、AJAX ASP.NETアプリケーションからデータを取得するような言い回しが役立つかもしれません。 – dbr

答えて

1

それでは、どのようにこのことについて:

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

は、インストールとオープンFirebugのは(それがFirefoxのプラグインです)、ネットページに移動し、「すべて」が選択されていることを確認してくださいFirebug!

を使用しています。 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 
+0

いいえ、それは動作しません - 私はsrcを印刷するとき、私はまだ2002年の値を参照してください。私は何か類似した(しかし、より多くの行;) - 私は新人です) –

関連する問題