10

次のスクリプトを実行すると:

from mechanize import Browser
br = Browser()
br.open(url)
br.select_form(name="edit_form")
br['file'] = 'file.txt'
br.submit()

取得:ValueError:値属性は読み取り専用です

また、次を追加しても同じエラーが発生します。

br.form.set_all_readonly(False)

では、Python Mechanizeを使用してHTMLフォームを操作し、ファイルをアップロードするにはどうすればよいですか?

リチャード

4

2 に答える 2

17

これは、Mechanize で適切に行う方法です。

br.form.add_file(open(filename), 'text/plain', filename)
于 2009-08-20T12:30:32.427 に答える
2

twillに基づいて構築されてmechanizeおり、Web フォームのスクリプト作成が簡単になります。python-www-macroを参照してください。

>>> from twill import commands
>>> print commands.formfile.__doc__

>> formfile <form> <field> <filename> [ <content_type> ]

Upload a file via an "upload file" form field.

>>> 
于 2009-08-19T13:24:04.960 に答える