0

生成された 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

ここで何が起こっているのかわかりません。

4

1 に答える 1

0

この問題をどのように乗り越えたか:

ソースを変更した後、mechanize を再インストールしました

の 3233 行目_form.py:

if (self.enctype != "application/x-www-form-urlencoded") and (self.enctype != "utf-8"):

それはおそらく非常に間違っており、おそらく私のケースしか処理できません。しかし、私の特定のケースでは機能します。

于 2013-10-01T09:19:14.033 に答える