28.06.2017 Views

Python para todos

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Interactuar con<br />

webs<br />

Existen dos módulos principales <strong>para</strong> leer datos de URLs en <strong>Python</strong>:<br />

urllib y urllib2. En esta lección aprenderemos a utilizar urllib2<br />

ya que es mucho más completo, aunque urllib tiene funcionalidades<br />

propias que no se pueden encontrar en urllib2, por lo que también lo<br />

tocaremos de pasada.<br />

urllib2 puede leer datos de una URL usando varios protocolos como<br />

HTTP, HTTPS, FTP, o Gopher.<br />

Se utiliza una función urlopen <strong>para</strong> crear un objeto parecido a un<br />

fichero con el que leer de la URL. Este objeto cuenta con mé<strong>todos</strong><br />

como read, readline, readlines y close, los cuales funcionan exactamente<br />

igual que en los objetos file, aunque en realidad estamos<br />

trabajando con un wrapper que nos abstrae de un socket que se utiliza<br />

por debajo.<br />

El método read, como recordareis, sirve <strong>para</strong> leer el “archivo” completo<br />

o el número de bytes especificado como parámetro, readline <strong>para</strong> leer<br />

una línea, y readlines <strong>para</strong> leer todas las líneas y devolver una lista con<br />

ellas.<br />

También contamos con un par de mé<strong>todos</strong> geturl, <strong>para</strong> obtener la<br />

URL de la que estamos leyendo (que puede ser útil <strong>para</strong> comprobar si<br />

ha habido una redirección) e info que nos devuelve un objeto con las<br />

cabeceras de respuesta del servidor (a las que también se puede acceder<br />

mediante el atributo headers).<br />

import urllib2<br />

96

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

Saved successfully!

Ooh no, something went wrong!