2011-01-28 12 views
2

私は機械の/ pythonでブルームバーグのウェブサイトから通貨データをダウンロードしようとしています。 http://www.bloomberg.com/markets/currencies/機械化でJavascriptボタンにアクセス

フィールドを希望の通貨に更新できましたが、残念ながら変換ボタンを「送信」するのに問題があります。

私はbr.submit()が動作しているとは思わないし、br.clickを使用しようとすると、アイテムがクリック可能ではないと表示されます。 ここで誰かがbr.form.action ""(http://bytes.com/topic/python/answers/764326-using-mechanize-python-navigate-を使用して提案していたボタンのHTML

<input type="button" value="Convert" class="btn w75" name="button" onclick="calculate(); return false;"> 

です私はそれをどのように実装するのか分かりません。だからここ

は残念ながら

br = mechanize.Browser() #initialized with and lets cookiejar handle all the cookies stuff 
br.open('http://www.bloomberg.com/markets/currencies/') 
br.form['from_tkc']=['USD:CUR'] 
br.form['to_tkc']=['BGN:CUR'] 
br.submit() . 
print br.response().read() 

、出力HTMLは通貨の計算機です私は必要なデータを持っていないと私はボタンがあるという事実を知っている...これまでのコードのコアです更新しました。誰かが正しい方向に私を指すことができますか、私はそのボタンをもう少し理解するのを助けることができます。

答えて

1

これは純粋なJavaScriptフォームです。何も提出されないので、Mechanizeを使用してアクセス/送信することはできません。

<form id="currcalc" onsubmit="calculate(); return false;" action="#"> 

http://www.bloomberg.com/javascripts/currencycalc_10.js電卓の後ろにはJavaScriptですし、フォームを含むページのHTMLソースに直接変換データを見つけることができます。

だから、
<script type="text/javascript"> 
//<![CDATA[ 
     var test_obj = new Object(); 
     var price = new Object(); 
       price['ADP:CUR'] = 122.244; 
       price['AED:CUR'] = 3.67295; 
       price['AFN:CUR'] = 45.33; 
       price['ALL:CUR'] = 102.325; 
... 

あなたはそれらの変換を「盗む」にしたい場合データは単純に価格配列(技術的にはオブジェクトであることはわかっています)のすべての行を抽出します。

関連する問題