を使用して Web サイト ( http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam ) をクロールしようとしてmechanize
いますが、理解できない (したがって解決できない) エラーが発生します。これはおそらく、Web 開発に関する私の知識が乏しいためです。
これが私がやろうとしていることです:
import mechanize
# this is the website I want to crawl
LINK = "http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam"
br = mechanize.Browser()
br.open(LINK)
request = mechanize.Request(LINK)
response = mechanize.urlopen(request)
# there're two forms in the page (output ommited), I want the second one.
forms = mechanize.ParseResponse(response, backwards_compat=False)
for form in br.forms():
print "Form name:", form.name
print form
br.select_form(nr=1)
br.form['codEntidadeDecorate:codEntidadeInput'] = '11024968'
response2 = br.submit()
そして、これが私が得ているランタイムエラーです:
Traceback (most recent call last):
File "C:\test.py", line 19, in <module>
response2 = br.submit()
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 541, in submit
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 530, in click
File "build\bdist.win32\egg\mechanize\_form.py", line 2999, in click
File "build\bdist.win32\egg\mechanize\_form.py", line 3201, in _click
File "build\bdist.win32\egg\mechanize\_form.py", line 2350, in _click
File "build\bdist.win32\egg\mechanize\_form.py", line 3269, in _switch_click
File "build\bdist.win32\egg\mechanize\_form.py", line 3257, in _request_data
ValueError: unknown POST form encoding type ''
フォームに渡す文字列のエンコードにいくつかの調整を試み、GET 対 POST を理解しようとしましたが、成功しませんでした。