Python nie może pobrać formularza za pomocą urllib lub mechanize

Próbuję wypełnić i przesłać formularz za pomocą Pythona, ale nie mogę pobrać strony wynikowej. Próbowałem opublikować formularz zarówno metodami mechanize, jak i urllib / urllib2, ale oba napotykały problemy.

Formularz, który próbuję pobrać, jest tutaj:http://zrs.leidenuniv.nl/ul/start.php. Strona jest w języku niderlandzkim, ale nie ma to znaczenia dla mojego problemu. Warto zauważyć, że akcja formularza przekierowuje dohttp://zrs.leidenuniv.nl/ul/query.php.

Przede wszystkim jest to metoda urllib / urllib2, którą próbowałem:

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()

Jednak gdy próbuję wydrukować pobrany html, otrzymuję oryginalną stronę, a nie tę, do której odnosi się akcja formularza. Tak więc wszelkie wskazówki, dlaczego ten formularz nie przesyła, będą bardzo mile widziane.

Ponieważ powyższe nie zadziałało, starałem się również użyć mechanize do przesłania formularza. Jednakże powoduje to błąd ParseError z następującym kodem:

import mechanize

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

gdzie ostatni wiersz kończy się następującymi słowami: „ParseError: nieoczekiwany” - „char w deklaracji”. Teraz zdaję sobie sprawę, że ten błąd może wskazywać na błąd w deklaracji DOCTYPE, ale ponieważ nie mogę edytować strony formularza, nie jestem w stanie wypróbować różnych deklaracji. Każda pomoc dotycząca tego błędu jest również bardzo mile widziana.

Z góry dziękuje za twoją pomoc.

questionAnswers(1)

yourAnswerToTheQuestion