<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nideaderedes &#187; httplib</title>
	<atom:link href="http://nideaderedes.urlansoft.com/tag/httplib/feed/" rel="self" type="application/rss+xml" />
	<link>http://nideaderedes.urlansoft.com</link>
	<description>Un blog hecho por mí y para mí</description>
	<lastBuildDate>Thu, 10 Jun 2010 18:46:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Python: descargar imágenes de una web</title>
		<link>http://nideaderedes.urlansoft.com/2008/08/22/python-descargar-imagenes-de-una-web/</link>
		<comments>http://nideaderedes.urlansoft.com/2008/08/22/python-descargar-imagenes-de-una-web/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 07:00:27 +0000</pubDate>
		<dc:creator>gorkau</dc:creator>
				<category><![CDATA[programacion]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[httplib]]></category>
		<category><![CDATA[imágenes]]></category>

		<guid isPermaLink="false">http://nideaderedes.urlansoft.com/?p=417</guid>
		<description><![CDATA[Hoy me he dado cuenta de algo terrible: ¡Aún no he escrito ninguna entrada acerca de Python, uno de de mis lenguajes de programación favoritos!
Voy a remediarlo comenzando con un sencillo script que permite descargarse imágenes de una web. Este script lo he usado como parte de un proyecto para un cliente que necesitaba descargarse [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy me he dado cuenta de algo terrible: ¡Aún no he escrito ninguna entrada acerca de Python, uno de de mis lenguajes de programación favoritos!</p>
<p>Voy a remediarlo comenzando con un sencillo script que permite descargarse imágenes de una web. Este script lo he usado como parte de un proyecto para un cliente que necesitaba descargarse automáticamente imágenes que le iban subiendo sus usuarios.</p>
<p>Ya que estamos en fiestas de Bilbao voy a poner un ejemplo que se descarga de la web del Ayuntamiento el cartel de las fiestas.</p>

<div class="wp_syntax"><div class="code"><pre class="python"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: cp1252 -*-</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">httplib</span> <span style="color: #808080; font-style: italic;"># Necesaria para hacer peticiones HTTP</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Configuración</span>
dominio = <span style="color: #483d8b;">'www.bilbao.net'</span>
ruta_imagen = <span style="color: #483d8b;">'/astenagusia2008/cartel2008.jpg'</span>
dir_downloads = <span style="color: #483d8b;">'/home/gorka/'</span>
imagen_local = <span style="color: #483d8b;">'cartel_aste_nagusia.jpg'</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Descargamos la imagen. Usamos try/except por si hay algún</span>
<span style="color: #808080; font-style: italic;"># error en la conexión</span>
<span style="color: #ff7700;font-weight:bold;">try</span>:
	<span style="color: #808080; font-style: italic;"># conectamos con el servidor</span>
	conn = <span style="color: #dc143c;">httplib</span>.<span style="color: black;">HTTPConnection</span><span style="color: black;">&#40;</span>dominio<span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;"># hacemos la petición a la imagen</span>
	conn.<span style="color: black;">request</span> <span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;GET&quot;</span>, <span style="color: #483d8b;">'/'</span> + ruta_imagen<span style="color: black;">&#41;</span>
	r = conn.<span style="color: black;">getresponse</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;"># abrimos o creamos el fichero donde vamos a guardar la imagen</span>
	fichero = <span style="color: #008000;">file</span><span style="color: black;">&#40;</span> dir_downloads + <span style="color: #483d8b;">'/'</span> + imagen_local, <span style="color: #483d8b;">&quot;wb&quot;</span> <span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;"># guardamos la imagen en el fichero</span>
	fichero.<span style="color: black;">write</span><span style="color: black;">&#40;</span>r.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;"># y cerramos el fichero</span>
	fichero.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">except</span>:
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;No se ha podido descargar la imagen&quot;</span></pre></div></div>

<p>Puedes hacer las pruebas cambiando los parámetros de configuración:</p>
<p>dominio: En este ejemplo es el del ayuntamiento (sin &#8216;http://&#8217;), sólo el dominio, en este caso bilbao.net.</p>
<p>ruta_imagen: es la ruta completa a la imagen, en este caso &#8216;astenagusia2008/cartel2008.jpg&#8217;.</p>
<p>(La URL completa de la imagen es: http://www.bilbao.net/astenagusia2008/cartel2008.jpg)</p>
<p>dir_downloads: directorio de nuestro ordenador donde queremos guardar la imagen (debe tener permiso de escritura).</p>
<p>imagen_local: nombre del archivo con el que queremos guardar la imagen.</p>
<p>Es posible que el servidor de donde intentes bajar la imagen no lo permita. Para saber si hay algún problema de ese tipo puedes imprimir el resultado de r.read() para ver si aparece algún mensaje de error (como &#8216;imagen no disponible&#8217; o algo similar).</p>
]]></content:encoded>
			<wfw:commentRss>http://nideaderedes.urlansoft.com/2008/08/22/python-descargar-imagenes-de-una-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
