23.11.2012 Views

Python para todos

Python para todos

Python para todos

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Interactuar con webs<br />

Veamos cómo añadir nuestras propias cabeceras utilizando como<br />

ejemplo la cabecera User-Agent. El User-Agent es una cabecera que<br />

sirve <strong>para</strong> identificar el navegador y sistema operativo que estamos<br />

utilizando <strong>para</strong> conectarnos a esa URL. Por defecto urllib2 se identifica<br />

como “<strong>Python</strong>-urllib/2.5”; si quisiéramos identificarnos como un<br />

Linux corriendo Konqueror por ejemplo, usaríamos un código similar<br />

al siguiente:<br />

ua = “Mozilla/5.0 (compatible; Konqueror/3.5.8; Linux)”<br />

h = {“User-Agent”: ua}<br />

r = urllib2.Request(“http://www.python.org”, headers=h)<br />

f = urllib2.urlopen(r)<br />

print f.read()<br />

Para personalizar la forma en que trabaja urllib2 podemos instalar un<br />

grupo de manejadores (handlers) agrupados en un objeto de la clase<br />

OpenerDirector (opener o abridor), que será el que se utilice a partir de<br />

ese momento al llamar a urlopen.<br />

Para construir un opener se utiliza la función build_opener a la que se<br />

le pasa los manejadores que formarán parte del opener. El opener se<br />

encargará de encadenar la ejecución de los distintos manejadores en el<br />

orden dado. También se puede usar el constructor de OpenerDirector,<br />

y añadir los manejadores usando su método add_handler.<br />

Para instalar el opener una vez creado se utiliza la función install_opener,<br />

que toma como parámetro el opener a instalar. También<br />

se podría, si sólo queremos abrir la URL con ese opener una sola vez,<br />

utilizar el método open del opener.<br />

urllib2 cuenta con handlers que se encargan de manejar los esquemas<br />

disponibles (HTTP, HTTPS, FTP), manejar la autenticación, manejar<br />

las redirecciones, etc.<br />

Para añadir autenticación tendríamos que instalar un opener que incluyera<br />

como manejador HTTPBasicAuthHandler, ProxyBasicAuthHandler,<br />

HTTPDigestAuthHandler y/o ProxyDigestAuthHandler.<br />

Para utilizar autenticación HTTP básica, por ejemplo, usaríamos<br />

99

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!