2009-10-10 8 views
5

私はPythonでいくつかのWebクローリングにmechanize(クライアントフォームを使用しています)を使用しています.JSをサポートしていないため、フォームに入力されていない値を設定したいと考えています。これどうやってするの?Python ClientFormに存在しないフィールドを設定するには?

エラーは、あなたが最初のフォームをフォームにコントロールを追加し、fixupする必要が

from mechanize import Browser 
br = Browser() 
page = br.open('http://google.com') 
br.select_form(nr = 0) 
br['unexistent'] = 'hello' 

答えて

16

を実行しようとした場合、あなたが得るものと類似しています。

br.form.new_control('text','unexistent',{'value':''}) 
br.form.fixup() 
br['unexistent'] = 'hello' 

これは本当に非常によく文書化されていない、とfixup()下のソースにコメントがあります:

This method should only be called once, after all controls have been 
added to the form. 

それはあまりにも危険な何もしないようにしかし、それは見ていません。おそらく、少なくともコントロールを最初に追加してから、フォーム内の他のものを混乱させるでしょう。

+0

ありがとうございます、魅力として働く – Fluffy

関連する問題