Sto tentando di compilare e inviare un modulo utilizzando Python, ma non sono in grado di recuperare la pagina risultante. Ho provato entrambi i metodi mechanize e urllib/urllib2 per pubblicare il modulo, ma entrambi hanno problemi.Python non è in grado di recuperare il modulo con urllib o mechanize
Il modulo che sto cercando di recuperare è qui: http://zrs.leidenuniv.nl/ul/start.php. La pagina è in olandese, ma questo è irrilevante per il mio problema. Può essere interessante notare che l'azione modulo reindirizza a http://zrs.leidenuniv.nl/ul/query.php.
Prima di tutto, questo è il metodo urllib/urllib2 Ho provato:
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()
Tuttavia, quando provo a stampare il codice HTML recuperata ho la pagina originale, non quello l'azione modulo si riferisce a. Quindi qualsiasi suggerimento sul motivo per cui questo non presenta il modulo sarebbe molto apprezzato.
Poiché quanto sopra non ha funzionato, ho anche provato a utilizzare mechanize per inviare il modulo. Tuttavia, questo si traduce in un parseError con il seguente codice:
import mechanize
url = 'http://zrs.leidenuniv.nl/ul/start.php'
br = mechanize.Browser()
response = br.open(url)
br.select_form(nr = 0)
dove l'ultima linea esce con il seguente: "parseError: inaspettato '-' char nella Dichiarazione". Ora mi rendo conto che questo errore potrebbe indicare un errore nella dichiarazione DOCTYPE, ma poiché non posso modificare la pagina del modulo non sono in grado di provare dichiarazioni diverse. Qualsiasi aiuto su questo errore è anche molto apprezzato.
Grazie in anticipo per il vostro aiuto.
Grazie, ha funzionato! Grazie per la tua risposta veloce. – GjjvdBurg
Puoi rimuovere anche altri tag [utilizzando BeautifulSoup] (http://stackoverflow.com/questions/5598524/can-i-remove-script-tags-with-beautifulsoup) – enkash