mechanizeフレームワークは、最初の数組のWeb画面を自動化するのに最適です。問題は、フォームでファイルをアップロードする必要がある場所です。ここでPython Mechanize:UTF-8ファイルをアップロードするときのUnicodeEncodeError。 'ascii'コーデック
だけで、エラーの前にコードのセクションです:
br.select_form(name="form.uploadXMLDataWizardForm")
xmlFile = codecs.open("MyFile.xml", "rt", "utf8")
br.form.add_file(file_object=xmlFile, content_type="text/xml", filename="MyFile.xml", name="dataFile")
br.submit(name="$action:next")
それは実行時に以下のエラーが発生:
br.submit(name="$action:next")
File "build/bdist.macosx-10.6-universal/egg/mechanize/_mechanize.py", line 541, in submit
File "build/bdist.macosx-10.6-universal/egg/mechanize/_mechanize.py", line 530, in click
File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 2999, in click
File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 3201, in _click
File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 2350, in _click
File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 3269, in _switch_click
File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 3252, in _request_data
File "build/bdist.macosx-10.6-universal/egg/mechanize/_form.py", line 1341, in _write_mime_data
UnicodeEncodeError: 'ascii' codec can't encode characters in position 650-651: ordinal not in range(128)
UTF-のMechanizeのハンドルのアップロードを行うための方法を任意のアイデアを8ファイル?
'codecs.open()を使うと、UTF-8ではなく内容が読み取られます。 –
@Ignacio私は以前にUTF-8コンテンツの読み書きにcodes.openを使用しました。あなたの提案は何ですか? :-) – byneri
はい、UTF-8でエンコードされたファイルを読むために使用できますが、UTF-8ではありません。 –