python - Mechanize :第一种形式有效,然后是 "unknown GET form encoding type ' utf- 8'"

标签 python forms encoding mechanize mechanize-python

我正在尝试从 EUR-Lex 网站填写 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在选择第一种和第二种形式之前。我得到的是:
  • 第一种形式后:application/x-www-form-urlencoded
  • 第二种形式后:utf-8

  • 我不知道这里发生了什么。

    最佳答案

    我是如何解决这个问题的:

    更改源后我重新安装了 Mechanize
    _form.py的第3233行:

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

    这可能是非常错误的,只能处理我的情况。
    但在我的具体情况下它有效。

    关于python - Mechanize :第一种形式有效,然后是 "unknown GET form encoding type ' utf- 8'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19099120/

    相关文章:

    python - 按值属性对字典进行排序

    Python Twitter 工具和 gzip 错误 "IOError: CRC check failed"

    python - 为什么这种Python多线程方法比单线程方法需要更多的时间来解决相同的任务?

    php - 保存表单数据是否会影响表单错误检查/验证

    encryption - Base64是加密算法还是编码算法?

    python - 在 Python 中处理古怪的编码

    python - redis-py中MULTI和EXEC命令的等效功能是什么?

    javascript - 让我的 JS 和 HTML 表单与 Ember.js 一起使用

    CSS 文件显示为垃圾

    ajax - 在 Google 跟踪代码管理器中跟踪 Ajax 表单