Python no puede recuperar el formulario con urllib o mecanizar

Estoy tratando de completar y enviar un formulario con Python, pero no puedo recuperar la página resultante. He intentado los métodos mecanize y urllib / urllib2 para publicar el formulario, pero ambos tienen problemas.

La forma que estoy tratando de recuperar está aquí:http://zrs.leidenuniv.nl/ul/start.php. La página está en holandés, pero esto no es relevante para mi problema. Cabe destacar que la acción de formulario redirige ahttp://zrs.leidenuniv.nl/ul/query.php.

En primer lugar, este es el método urllib / urllib2 que he probado:

import urllib, urllib2
import socket, cookielib

url = 'http://zrs.leidenuniv.nl/ul/start.php'
params = {'day': 1, 'month': 5, 'year': 2012, 'quickselect' : "unchecked",
          'res_instantie': '_ALL_', 'selgebouw': '_ALL_', 'zrssort': "locatie",
          'submit' : "Uitvoeren"}
http_header = {  "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11",
                 "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                 "Accept-Language" : "nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4" }

timeout = 15
socket.setdefaulttimeout(timeout)

request = urllib2.Request(url, urllib.urlencode(params), http_header)
response = urllib2.urlopen(request)

cookies = cookielib.CookieJar()
cookies.extract_cookies(response, request)
cookie_handler = urllib2.HTTPCookieProcessor(cookies)
redirect_handler = urllib2.HTTPRedirectHandler()

opener = urllib2.build_opener(redirect_handler, cookie_handler)

response = opener.open(request)
html = response.read()

Sin embargo, cuando intento imprimir el html recuperado, obtengo la página original, no la página a la que se refiere la acción de formulario. Así que cualquier sugerencia de por qué esto no envía el formulario sería muy apreciada.

Como lo anterior no funcionó, también intenté usar mecanizar para enviar el formulario. Sin embargo, esto resulta en un ParseError con el siguiente código:

import mechanize

url = 'http://zrs.leidenuniv.nl/ul/start.php'
br = mechanize.Browser()
response = br.open(url)
br.select_form(nr = 0)

donde la última línea sale con lo siguiente: "ParseError: inesperado '-' char en declaración". Ahora me doy cuenta de que este error puede indicar un error en la declaración DOCTYPE, pero como no puedo editar la página del formulario, no puedo probar declaraciones diferentes. Cualquier ayuda en este error también es muy apreciada.

Gracias de antemano por tu ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta