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