You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Python</strong> <strong>para</strong> <strong>todos</strong><br />
leídos.<br />
La función urlretrieve toma como parámetros la URL a descargar<br />
y, opcionalmente, un parámetro filename con la ruta local en la<br />
que guardar el archivo, un parámetro data similar al de urlopen y un<br />
parámetro reporthook con una función que utilizar <strong>para</strong> informar del<br />
progreso.<br />
A excepción de las ocasiones en las que se utiliza el parámetro data<br />
las conexiones siempre se realizan utilizando GET (los parámetros se<br />
envían en la URL). Para enviar datos usando GET basta con concatenar<br />
la cadena resultante de urlencode con la URL a la que nos vamos a<br />
conectar mediante el símbolo ?.<br />
<strong>para</strong>ms = urllib.urlencode({“usuario”: “manuel”,<br />
“password”: “contraseña”})<br />
f = urllib2.urlopen(“http://ejemplo.com/login” +<br />
“?” + <strong>para</strong>ms)<br />
En urllib también se utiliza una función urlopen <strong>para</strong> crear nuestros<br />
pseudo-archivos, pero a diferencia de la versión de urllib, la función<br />
urlopen de urllib2 también puede tomar como parámetro un objeto<br />
Request, en lugar de la URL y los datos a enviar.<br />
La clase Request define objetos que encapsulan toda la información<br />
relativa a una petición. A través de este objeto podemos realizar peticiones<br />
más complejas, añadiendo nuestras propias cabeceras, como el<br />
User-Agent.<br />
El constructor más sencillo <strong>para</strong> el objeto Request no toma más que<br />
una cadena indicando la URL a la que conectarse, por lo que utilizar<br />
este objeto como parámetro de urlopen sería equivalente a utilizar una<br />
cadena con la URL directamente.<br />
Sin embargo el constructor de Request también tiene como parámetros<br />
opcionales una cadena data <strong>para</strong> mandar datos por POST y un<br />
diccionario headers con las cabeceras (además de un par de campos<br />
origin_req_host y unverifiable, que quedan fuera del propósito del<br />
capítulo por ser de raro uso).<br />
98