5

Pythonの一部のWebクロールにmechanize(clientformを使用)を使用していますが、JSをサポートしていないため、フォームに存在しない入力の値を設定します(入力はJSによって生成されます)。これどうやってするの?

エラーは、実行しようとした場合に発生するエラーと似ています

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

1 に答える 1

17

最初にコントロールをフォームに追加し、次にフォームを追加する必要がありますfixup

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.

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

于 2009-10-10T20:45:03.963 に答える