生成された Web ページからデータを記録するために、EUR-Lex Web サイトから 2 つのフォームに記入しようとしています。フォーム#2で立ち往生しています。これは簡単なはずだと感じ、少し調査しましたが、うまくいきませんでした。
import mechanize
froot = '...'
f = open(froot + 'text.html', 'w')
br = mechanize.Browser()
br.open('http://eur-lex.europa.eu/RECH_legislation.do')
br.select_form(name='form2')
br['T1'] = ['V112']
br['T3'] = ['V2']
br['T2'] = ['V1']
first_page = br.submit()
f.write(first_page.get_data())
ここまでは、正しいページのソースがファイルに保存されているため、すべてが機能しているようです。しかしその後...
br.select_form(name='form2')
br['typedate'] = ['PD']
br['startaaaa'] = '1960'
br['startmm'] = '01'
br['startjj'] = '01'
br['endaaaa'] = '1960'
br['endmm'] = '12'
br['startjj'] = '31'
next = br.submit()
ここですべてが停止します:
ValueError: unknown GET form encoding type 'utf-8'
br.enctype
第1形態と第2形態を選択する前に確認しました。私が得るものは次のとおりです。
- 最初のフォームの後:
application/x-www-form-urlencoded
- 2 番目のフォームの後:
utf-8
ここで何が起こっているのかわかりません。