<?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>Mundo Geek &#187; webs</title>
	<atom:link href="http://mundogeek.net/etiqueta/webs/feed/" rel="self" type="application/rss+xml" />
	<link>http://mundogeek.net</link>
	<description>Mundo geek, bitácora sobre todo lo geek: software, gadgets, tecnología, internet, ...</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:09:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Las estadísticas de Internet en 2010</title>
		<link>http://mundogeek.net/archivos/2011/01/16/las-estadisticas-de-internet-en-2010/</link>
		<comments>http://mundogeek.net/archivos/2011/01/16/las-estadisticas-de-internet-en-2010/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 11:08:29 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[correo]]></category>
		<category><![CDATA[estadisticas]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[imagenes]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[videos]]></category>
		<category><![CDATA[webs]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=6285</guid>
		<description><![CDATA[¿Sabías que se envían 262.000 millones de correos de spam cada día? ¿que se publicaron 25.000 millones de tweets en 2010? ¿que Facebook tiene 600 millones de usuarios? Como ya hicieran el año pasado, desde Pingdom, el popular servicio de monitorización de webs, se han dedicado a recopilar los números de Internet durante 2010. Números [...]]]></description>
			<content:encoded><![CDATA[<p>¿Sabías que se envían 262.000 millones de correos de spam cada día? ¿que se publicaron 25.000 millones de tweets en 2010? ¿que Facebook tiene 600 millones de usuarios? <a href="http://mundogeek.net/archivos/2010/01/23/las-estadisticas-de-internet-en-2009/">Como ya hicieran el año pasado</a>, desde Pingdom, el popular servicio de monitorización de webs, se han dedicado a recopilar los <a href="http://royal.pingdom.com/2011/01/12/internet-2010-in-numbers/">números de Internet durante 2010</a>. Números que nos ayudan a hacernos una idea de lo vasta que es la red de redes. Atentos a estas estadísticas. <span id="more-6285"></span></p>
<h2>Correo electrónico</h2>
<ul>
<li><strong>107 billones</strong> – El número de correos electrónicos enviados en 2010.</li>
<li><strong>294.000 millones</strong> – El número medio de correos electrónicos enviados por día.</li>
<li><strong>1.880 millones</strong> – El número de usuarios del correo electrónico en el mundo.</li>
<li><strong>480 millones</strong> – Nuevos usuarios del correo electrónico desde el año pasado.</li>
<li><strong>89,1%</strong> – El porcentaje de correos de spam.</li>
<li><strong>262.000 millones</strong> – El número de correos de spam enviados cada día.</li>
<li><strong>2.900 millones</strong> – El número de cuentas de correos que existen en el mundo.</li>
<li><strong>25%</strong> – El porcentaje de cuentas que son empresariales.</li>
</ul>
<h2>Páginas web</h2>
<ul>
<li><strong>255 millones</strong> – El número de páginas web existentes en Diciembre de 2010.</li>
<li><strong>21.4 millones</strong> – Nuevas páginas web en 2010.</li>
</ul>
<h2>Servidores web</h2>
<ul>
<li><strong>39.1%</strong> – El crecimiento en el número de páginas que usan Apache en 2010.</li>
<li><strong>15.3%</strong> – El crecimiento en el número de páginas que usan IIS en 2010.</li>
<li><strong>4.1%</strong> – El crecimiento en el número de páginas que usan nginx en 2010.</li>
<li><strong>5.8%</strong> – El crecimiento en el número de páginas que usan Google GWS en 2010.</li>
<li><strong>55.7%</strong> – El crecimiento en el número de páginas que usan Lighttpd en 2010.</li>
</ul>
<h2>Nombres de dominio</h2>
<ul>
<li><strong>88,8 millones</strong> – Dominios .com a finales de 2010.</li>
<li><strong>13,2 millones</strong> – Dominios .net a finales de 2010.</li>
<li><strong>8,6 millones</strong> – Dominios .org a finales de 2010.</li>
<li><strong>79,2 millones</strong> – El número de dominios de nivel superior geográfico (.cn, .uk, .de, etc.).</li>
<li><strong>202 millones</strong> – El número de nombres de dominios de nivel superior (Octubre de 2010).</li>
<li><strong>7%</strong> – El incremento en el nombre de dominios desde el pasado año.</li>
</ul>
<h2>Usuarios de Internet</h2>
<ul>
<li><strong>1.970 millones</strong> – Usuarios de internet en el mundo (Junio de 2010).</li>
<li><strong>14%</strong> – Aumento en el número de usuarios desde el año pasado.</li>
<li><strong>825,1 millones</strong> – Usuarios de Internet en Asia.</li>
<li><strong>475,1 millones</strong> – Usuarios de Internet en Europa.</li>
<li><strong>266,2 millones</strong> – Usuarios de Internet en Norte América.</li>
<li><strong>204,7 millones</strong> – Usuarios de Internet en Latino América / El Caribe.</li>
<li><strong>110,9 millones</strong> – Usuarios de Internet en África.</li>
<li><strong>63,2 millones</strong> – Usuarios de Internet en el Oriente Medio.</li>
<li><strong>21,3 millones</strong> – Usuarios de Internet en Oceania / Australia.</li>
</ul>
<h2>Medios sociales</h2>
<ul>
<li><strong>152 millones</strong> – El número de bitácoras en Internet.</li>
<li><strong>25.000 millones</strong> – Número de tweets en Twitter durante 2010.</li>
<li><strong>100 millones</strong> –  Nuevos usuarios de Twitter en 2010.</li>
<li><strong>175 millones</strong> –  Personas en Twitter en Septiembre de 2010.</li>
<li><strong>7,7 millones</strong> – Personas que siguen a @ladygaga (Lady Gaga, el usuario de Twitter más seguido).</li>
<li><strong>600 millones</strong> –  Personas en Facebook.</li>
<li><strong>250 millones</strong> –  Nuevos usuarios de Facebook en 2010.</li>
<li><strong>30.000 millones</strong> –  Contenidos compartidos en Facebook cada mes.</li>
<li><strong>70%</strong> – Porcentaje de usuarios de Facebook que viven fuera de Estados Unidos.</li>
<li><strong>20 millones</strong> – Número de aplicaciones para Facebook instaladas cada día.</li>
</ul>
<h2>Navegadores</h2>
<ul>
<li><strong>46,9%</strong> – Porcentaje de mercado para Internet Explorer.</li>
<li><strong>30,0%</strong> – Porcentaje de mercado para Firefox.</li>
<li><strong>14,9%</strong> – Porcentaje de mercado para Chrome.</li>
<li><strong>4,8%</strong> – Porcentaje de mercado para Safari.</li>
<li><strong>2,1%</strong> – Porcentaje de mercado para Opera.</li>
</ul>
<h2>Vídeos</h2>
<ul>
<li><strong>2.000 millones</strong> – El número de vídeos que se ven en YouTube cada día.</li>
<li><strong>35</strong> – Número de horas de vídeo que se suben a YouTube cada minuto.</li>
<li><strong>186</strong> – Número medio de vídeos online que ve cada usuario de Internet por mes (EEUU).</li>
<li><strong>84%</strong> – Porcentaje de usuarios de Internet que ven vídeos online (EEUU).</li>
<li><strong>14%</strong> – Porcentaje de usuarios de Internet que suben vídeos online (EEUU).</li>
<li><strong>2.000 millones</strong> – El número de vídeos que se ven en Facebook cada mes.</li>
<li><strong>20 millones</strong> – Número de vídeos subidos a Facebook cada mes.</li>
</ul>
<h2>Imágenes</h2>
<ul>
<li><strong>5.000 millones</strong> – Fotografías alojadas en Flickr (Septiembre 2010).</li>
<li><strong>3.000</strong> – Fotografías subidas a Flickr cada minuto.</li>
<li><strong>130 millones</strong> – Número de fotografías subidas a Flickr cada mes.</li>
<li><strong>3.000 millones</strong> – Número de fotografías subidas a Facebook cada mes.</li>
<li><strong>36.000 millones</strong> – Número de fotografías subidas a Facebook cada año.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2011/01/16/las-estadisticas-de-internet-en-2010/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Si te gusta X visita Y</title>
		<link>http://mundogeek.net/archivos/2010/02/22/si-te-gusta-x-visita-y/</link>
		<comments>http://mundogeek.net/archivos/2010/02/22/si-te-gusta-x-visita-y/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:08:33 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[google reader]]></category>
		<category><![CDATA[recomendados]]></category>
		<category><![CDATA[webs]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=4998</guid>
		<description><![CDATA[Si utilizas Google Reader a diario es probable que te hayas percatado de que hace poco Google añadió una nueva funcionalidad (Feeds settings -> More like this) que recomienda feeds parecidos al que estamos consultando actualmente, ¿basándose en los feeds del resto de usuarios?. Os dejo los resultados para algunas webs populares, para que podáis [...]]]></description>
			<content:encoded><![CDATA[<p>Si utilizas Google Reader a diario es probable que te hayas percatado de que hace poco Google añadió una nueva funcionalidad (Feeds settings -> More like this) que recomienda feeds parecidos al que estamos consultando actualmente, ¿basándose en los feeds del resto de usuarios?. Os dejo los resultados para algunas webs populares, para que podáis juzgar qué tal lo hace.<span id="more-4998"></span></p>
<ul>
<li>
    <a href="http://mundogeek.net/">Mundo geek</a></p>
<ul>
<li><a href="http://www.cesarius.net/">Cesarius Revolutions</a></li>
<li><a href="http://www.genbeta.com/">Genbeta</a></li>
<li><a href="http://www.vivalinux.com.ar/">VivaLinux!</a></li>
<li><a href="http://diariolinux.com/">DiarioLinux</a></li>
<li><a href="http://www.microsiervos.com/">Microsiervos</a></li>
<li><a href="http://linuxdesktops.org/">Linux Desktops!</a></li>
<li><a href="http://arcalinux.wordpress.com/">Arcalinux</a></li>
<li><a href="http://www.soloubuntu.com/">Solo Ubuntu</a></li>
</ul>
</li>
<li>
    <a href="http://www.meneame.net/">Menéame</a></p>
<ul>
<li><a href="http://www.microsiervos.com/">Microsiervos</a></li>
<li><a href="http://barrapunto.com/">Barrapunto</a></li>
<li><a href="http://xataka.com">Xataka</a></li>
<li><a href="http://www.elmundo.es/">El Mundo</a></li>
<li><a href="http://www.genbeta.com/">Genbeta</a></li>
<li><a href="http://www.meneame.net/notame/erlang/">Nótame: notas de erlang</a></li>
</ul>
</li>
<li>
    <a href="http://www.microsiervos.com/">Microsiervos</a></p>
<ul>
<li><a href="http://www.genbeta.com/">Genbeta</a></li>
<li><a href="http://alt1040.com/">ALT1040</a></li>
<li><a href="http://www.enriquedans.com/">El Blog de Enrique Dans</a></li>
<li><a href="http://xataka.com">Xataka</a></li>
<li><a href="http://barrapunto.com/">Barrapunto</a></li>
</ul>
</li>
<li>
    <a href="http://www.genbeta.com/">Genbeta</a></p>
<ul>
<li><a href="http://www.microsiervos.com/">Microsiervos</a></li>
<li><a href="http://xataka.com">Xataka</a></li>
<li><a href="http://bitelia.com/">Bitelia</a></li>
<li><a href="http://alt1040.com/">ALT1040</a></li>
<li><a href="http://www.enriquedans.com/">El Blog de Enrique Dans</a></li>
</ul>
</li>
<li>
    <a href="http://www.blogpocket.com/">Blogpocket</a></p>
<ul>
<li><a href="http://www.microsiervos.com/">Microsiervos</a></li>
<li><a href="http://www.genbeta.com/">Genbeta</a></li>
<li><a href="http://alt1040.com/">ALT1040</a></li>
<li><a href="http://www.error500.net/">Error500</a></li>
<li><a href="http://xataka.com">Xataka</a></li>
<li><a href="http://diarioip.com/">DiarioIP</a></li>
</ul>
</li>
<li>
    <a href="http://www.blogpocket.com/">David Bravo</a></p>
<ul>
<li><a href="http://www.microsiervos.com/">Microsiervos</a></li>
<li><a href="http://barrapunto.com/">Barrapunto</a></li>
<li><a href="http://www.enriquedans.com/">El Blog de Enrique Dans</a></li>
<li><a href="http://www.genbeta.com/">Genbeta</a></li>
<li><a href="http://xataka.com">Xataka</a></li>
<li><a href="http://derecho-internet.org/">Derecho de Internet</a></li>
<li><a href="http://www.filmica.com/carlosues/">Carlosues</a></li>
<li><a href="http://www.interiuris.com/blog/">Blog Interiuris &#8211; Andy Ramos</a></li>
</ul>
</li>
<li>
    <a href="http://www.elotrolado.net/">El otro lado</a></p>
<ul>
<li><a href="http://www.vidaextra.com/">VidaExtra</a></li>
<li><a href="http://www.anaitgames.com/">AnaitGames</a></li>
<li><a href="http://www.vandal.net/">Vandal Online</a></li>
<li><a href="http://www.meristation.com/">MeriStation</a></li>
<li><a href="http://ecetia.com/">Ecetia</a></li>
<li><a href="http://www.dekazeta.net/">Dekazeta</a></li>
<li><a href="http://www.revogamers.net/">Revogamers</a></li>
</ul>
</li>
<li>
    <a href="http://www.error500.net/">Error500</a></p>
<ul>
<li><a href="http://xataka.com">Xataka</a></li>
<li><a href="http://www.nopuedocreer.com/quelohayaninventado/">No puedo creer que lo hayan inventado&#8230;</a></li>
<li><a href="http://www.gizmodo.es">Gizmodo ES</a></li>
<li><a href="http://www.tecnogadgets.com/">TecnoGadgets.com</a></li>
<li><a href="http://www.elmundo.es/">El Mundo</a></li>
</ul>
</li>
<li>
    <a href="http://google.dirson.com/">google.dirson.com</a></p>
<ul>
<li><a href="http://www.genbeta.com/">Genbeta</a></li>
<li><a href="http://www.microsiervos.com/">Microsiervos</a></li>
<li><a href="http://alt1040.com/">ALT1040</a></li>
<li><a href="http://www.enriquedans.com/">El Blog de Enrique Dans</a></li>
<li><a href="http://bitelia.com/">Bitelia</a></li>
<li><a href="http://adwords-es.blogspot.com/">Dentro de AdWords &#8211; España</a></li>
</ul>
</li>
<li>
    <a href="http://xataka.com">Xataka</a></p>
<ul>
<li><a href="http://www.gizmodo.es">Gizmodo ES</a></li>
<li><a href="http://videojuegosyconsolas.blogspot.com">Videojuegos y consolas</a></li>
<li><a href="http://www.gameover.es/">GameOver</a></li>
<li><a href="http://www.linuxjuegos.com/">LinuxJuegos</a></li>
</ul>
</li>
<li>
    <a href="http://barrapunto.com/">Barrapunto</a></p>
<ul>
<li><a href="http://www.gizmodo.es">Gizmodo ES</a></li>
<li><a href="http://www.fayerwayer.com/">FayerWayer</a></li>
<li><a href="http://es.engadget.com/">Engadget en español</a></li>
<li><a href="http://www.infobae.com/interior/tecnologia.html">Infobae &#8211; Tecnología</a></li>
</ul>
</li>
<li>
    <a href="http://www.vidaextra.com/">VidaExtra</a></p>
<ul>
<li><a href="http://www.anaitgames.com/">AnaitGames</a></li>
<li><a href="http://videojuegosyconsolas.blogspot.com">Videojuegos y consolas</a></li>
<li><a href="http://www.gameover.es/">GameOver</a></li>
<li><a href="http://www.linuxjuegos.com/">LinuxJuegos</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2010/02/22/si-te-gusta-x-visita-y/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>NumCode</title>
		<link>http://mundogeek.net/archivos/2009/02/09/numcode/</link>
		<comments>http://mundogeek.net/archivos/2009/02/09/numcode/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 18:37:38 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[webs]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2473</guid>
		<description><![CDATA[¿Qué mejor manera de vender una idea que con una tira de Bilo y Nano? Por muy descabellada que esta fuera seguramente me habría gustado. Y el caso es que en esta ocasión la idea es cuanto menos curiosa. ¿Le has intentado dar tu dirección de email, web o blog a un conocido en la [...]]]></description>
			<content:encoded><![CDATA[<p>¿Qué mejor manera de vender una idea que con una tira de Bilo y Nano? Por muy descabellada que esta fuera seguramente me habría gustado. Y el caso es que en esta ocasión la idea es cuanto menos curiosa.</p>
<p><img src="http://mundogeek.net/wp-content/numcode.png"/><br />
<span id="more-2473"></span></p>
<blockquote><p>¿Le has intentado dar tu dirección de email, web o blog a un conocido en la calle, en un bar o por teléfono? &#8230;  no hay manera de aclararse con el guion bajo, la arroba o la barra del http !!!<br />
Pues ahora todo será mucho más fácil, con solo poner un número, como por ejemplo el de tu móvil , se podrá acceder a los datos de internet que quieras dar a conocer.  <a href="http://www.numcode.com">Numcode</a> es tu tarjeta de visita en internet !!!</p></blockquote>
<p>¿Mundo guic? ¿cómo se escribe guic?</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/02/09/numcode/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Interactuar con webs en Python</title>
		<link>http://mundogeek.net/archivos/2008/04/15/interactuar-con-webs-en-python/</link>
		<comments>http://mundogeek.net/archivos/2008/04/15/interactuar-con-webs-en-python/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 09:00:12 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[urls]]></category>
		<category><![CDATA[webs]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=1456</guid>
		<description><![CDATA[Existen dos módulos principales para leer datos de URLs en Python: urllib y urllib2. En esta lección aprenderemos a utilizar urllib2 ya que es mucho más completo, aunque urllib tiene funcionalidades propias que no se pueden encontrar en urllib2, por lo que también lo tocaremos de pasada. urllib2 puede leer datos de una URL usando [...]]]></description>
			<content:encoded><![CDATA[<p>Existen dos módulos principales para leer datos de URLs en Python: <code>urllib</code> y <code>urllib2</code>. En esta lección aprenderemos a utilizar <code>urllib2</code> ya que es mucho más completo, aunque <code>urllib</code> tiene funcionalidades propias que no se pueden encontrar en <code>urllib2</code>, por lo que también lo tocaremos de pasada.</p>
<p><code>urllib2</code> puede leer datos de una URL usando varios protocolos como HTTP, HTTPS, FTP, o Gopher.</p>
<p><span id="more-1456"></span></p>
<p>Se utiliza una función <code>urlopen</code> para crear un objeto parecido a un fichero con el que leer de la URL. Este objeto cuenta con métodos como <code>read</code>, <code>readline</code>, <code>readlines</code> y <code>close</code>, los cuales funcionan exactamente igual que en los objetos <code>file</code>, aunque en realidad estamos trabajando con un wrapper que nos abstrae de un socket que se utiliza por debajo.</p>
<p>El método <code>read</code>, como recordareis, sirve para leer el &#8220;archivo&#8221; completo o el número de bytes especificado como parámetro, <code>readline</code> para leer una línea, y <code>readlines</code> para leer todas las líneas y devolver una lista con ellas.</p>
<p>También contamos con un par de métodos <code>geturl</code>, para obtener la URL de la que estamos leyendo (que puede ser útil para comprobar si ha habido una redirección) e <code>info</code> que nos devuelve un objeto con las cabeceras de respuesta del servidor (a las que también se puede acceder mediante el atributo <code>headers</code>).</p>
<pre name="code" class="python">import urllib2

try:
    f = urllib2.urlopen("http://www.python.org")
    print f.read()
    f.close()
except HTTPError, e:
    print "Ocurrió un error"
    print e.code
except URLError, e:
    print "Ocurrió un error"
    print e.reason</pre>
<p>Al trabajar con <code>urllib2</code> nos podemos encontrar, como vemos, con errores de tipo <code>URLError</code>. Si trabajamos con HTTP podemos encontrarnos también con errores de la subclase de <code>URLError</code> <code>HTTPError</code>, que se lanzan cuando el servidor devuelve un código de error HTTP, como el error 404 cuando no se encuentra el recurso. También podríamos encontrarnos con errores lanzados por la librería que <code>urllib2</code> utiliza por debajo para las transferencias HTTP: <code>httplib</code>; o con excepciones lanzadas por el propio módulo <code>socket</code>.</p>
<p>La función <code>urlopen</code> cuenta con un parámetro opcional <code>data</code> con el que poder enviar información a direcciones HTTP (y solo HTTP) usando POST (los parámetros se envían en la propia petición), por ejemplo para responder a un formulario. Este parámetro es una cadena codificada adecuadamente, siguiendo el formato utilizado en las URLs:</p>
<blockquote><p>&#8216;password=contrase%A4a&#038;usuario=manuel&#8217;</p></blockquote>
<p>Lo más sencillo para codificar la cadena es utilizar el método <code>urlencode</code> de <code>urllib</code>, que acepta un diccionario o una lista de tuplas <code>(clave, valor)</code> y genera la cadena codificada correspondiente:</p>
<pre name="code" class="python">import urllib, urllib2

params = urllib.urlencode({"usuario": "manuel", "password": "contraseña"})
f = urllib2.urlopen("http://ejemplo.com/login", params)</pre>
<p>Si lo único que queremos hacer es descargar el contenido de una URL a un archivo local, podemos utilizar la función <code>urlretrieve</code> de <code>urllib</code> en lugar de leer de un objeto creado con <code>urlopen</code> y escribir los datos leídos.</p>
<p>La función <code>urlretrieve</code> toma como parámetros la URL a descargar y, opcionalmente, un parámetro <code>filename</code> con la ruta local en la que guardar el archivo, un parámetro <code>data</code> similar al de <code>urlopen</code> y un parámetro <code>reporthook</code> con una función que utilizar para informar del progreso.</p>
<p>A excepción de las ocasiones en las que se utiliza el parámetro <code>data</code> las conexiones siempre se realizan utilizando GET (los parámetros se envían en la URL). Para enviar datos usando GET basta con concatenar la cadena resultante de <code>urlencode</code> con la URL a la que nos vamos a conectar mediante el símbolo &#8220;?&#8221;.</p>
<pre name="code" class="python">params = urllib.urlencode({"usuario": "manuel", "password": "contraseña"})

f = urllib2.urlopen("http://ejemplo.com/login" + "?" + params)</pre>
<p>En <code>urllib</code> también se utiliza una función <code>urlopen</code> para crear nuestros pseudo-archivos, pero a diferencia de la versión de <code>urllib</code>, la función <code>urlopen</code> de <code>urllib2</code> también puede tomar como parámetro un objeto <code>Request</code>, en lugar de la URL y los datos a enviar.</p>
<p>La clase <code>Request</code> define objetos que encapsulan toda la información relativa a una petición. A través de este objeto podemos realizar peticiones más complejas, añadiendo nuestras propias cabeceras, como el User-Agent.   </p>
<p>El constructor más sencillo para el objeto <code>Request</code> no toma más que una cadena indicando la URL a la que conectarse, por lo que utilizar este objeto como parámetro de <code>urlopen</code> sería equivalente a utilizar una cadena con la URL directamente.</p>
<p>Sin embargo el constructor de <code>Request</code> también tiene como parámetros opcionales una cadena <code>data</code> para mandar datos por POST, un diccionario <code>headers</code> con las cabeceras y un par de campos <code>origin_req_host</code> y <code>unverifiable</code>, que quedan fuera del propósito de la lección.</p>
<p>Veamos cómo añadir nuestras propias cabeceras utilizando como ejemplo la cabecera User-Agent. El User-Agent es una cabecera que sirve para identificar el navegador y sistema operativo que estamos utilizando para conectarnos a esa URL. Por defecto <code>urllib2</code> se identifica como &#8220;Python-urllib/2.5&#8243;; si quisiéramos identificarnos como un Linux corriendo Konqueror por ejemplo, usaríamos un código similar al siguiente:</p>
<pre name="code" class="python">ua = "Mozilla/5.0 (compatible; Konqueror/3.5.8; Linux)"
h = {"User-Agent": ua}
r = urllib2.Request("http://www.python.org", headers=h)
f = urllib2.urlopen(r)
print f.read()</pre>
<p>Para personalizar la forma en que trabaja <code>urllib2</code> podemos instalar un grupo de manejadores (handlers) agrupados en un objeto de la clase <code>OpenerDirector</code> (<em>opener</em> o abridor), que será el que se utilice a partir de ese momento al llamar a <code>urlopen</code>.</p>
<p>Para construir un opener se utiliza la función <code>build_opener</code> a la que se le pasa los manejadores que formarán parte del opener. El opener se encargará de encadenar la ejecución de los distintos manejadores en el orden dado. También se puede usar el constructor de <code>OpenerDirector</code>, y añadir los manejadores usando su método <code>add_handler</code>.</p>
<p>Para instalar el opener una vez creado se utiliza la función <code>install_opener</code>, que toma como parámetro el opener a instalar. También se podría, si sólo queremos abrir la URL con ese opener una sola vez, utilizar el método <code>open</code> del opener. </p>
<p><code>urllib2</code> cuenta con handlers que se encargan de manejar los esquemas disponibles (HTTP, HTTPS, FTP), manejar la autenticación, manejar las redirecciones, etc.</p>
<p>Para añadir autenticación tendríamos que instalar un opener que incluyera como manejador <code>HTTPBasicAuthHandler</code>, <code>ProxyBasicAuthHandler</code>, <code>HTTPDigestAuthHandler</code> y/o <code>ProxyDigestAuthHandler</code>. </p>
<p>Para utilizar autenticación HTTP básica, por ejemplo, usaríamos <code>HTTPBasicAuthHandler</code>: </p>
<pre name="code" class="python">aut_h = urllib2.HTTPBasicAuthHandler()
aut_h.add_password("realm", "host", "usuario", "password")

opener = urllib2.build_opener(aut_h)
urllib2.install_opener(opener)

f = urllib2.urlopen("http://www.python.org")</pre>
<p>Si quisiéramos especificar un proxy en el código tendríamos que utilizar un opener que contuviera el manejador <code>ProxyHandler</code>. El manejador por defecto incluye una instacia de <code>ProxyHandler</code> construido llamando al inicializador sin parámetros, con lo que se lee la lista de proxies a utilizar de la variable de entorno adecuada. Sin embargo también podemos construir un <code>ProxyHandler</code> pasando como parámetro al inicializador un diccionario cuyas claves son los protocolos y los valores, la URL del proxy a utilizar para dicho protocolo.</p>
<pre name="code" class="python">proxy_h = urllib2.ProxyHandler({"http" : "http://miproxy.net:123"})

opener = urllib2.build_opener(proxy_h)
urllib2.install_opener(opener)

f = urllib2.urlopen("http://www.python.org")</pre>
<p>Para que se guarden las cookies que manda HTTP utilizamos el manejador <code>HTTPCookieProcessor</code>.</p>
<pre name="code" class="python">cookie_h = urllib2.HTTPCookieProcessor()

opener = urllib2.build_opener(cookie_h)
urllib2.install_opener(opener)

f = urllib2.urlopen("http://www.python.org")</pre>
<p>Si queremos acceder a estas cookies o poder mandar nuestras propias cookies, podemos pasarle como parámetro al inicializador de <code>HTTPCookieProcessor</code> un objeto de tipo <code>CookieJar</code> del módulo <code>cookielib</code>.</p>
<p>Para leer las cookies mandadas basta crear un objeto iterable a partir del <code>CookieJar</code> (también podríamos buscar las cabeceras correspondientes, pero este sistema es más claro y sencillo): </p>
<pre name="code" class="python">import urllib2, cookielib

cookie_j = cookielib.CookieJar()

cookie_h = urllib2.HTTPCookieProcessor(cookie_j)

opener = urllib2.build_opener(cookie_h)
opener.open("http://www.python.org")

for num, cookie in enumerate(cookie_j):
    print num, cookie.name
    print cookie.value
    print</pre>
<p>En el improbable caso de que necesitáramos añadir una cookie antes de realizar la conexión, en lugar de conectarnos para que el sitio la mande, podríamos utilizar el método <code>set_cookie</code> de <code>CookieJar</code>, al que le pasamos un objeto de tipo <code>Cookie</code>. El constructor de <code>Cookie</code>, no obstante, es bastante complicado.</p>
<link type="text/css" rel="stylesheet" href="http://mundogeek.net/sh/css/SyntaxHighlighter.css"></link>
<script language="javascript" src="http://mundogeek.net/sh/js/shCore.js"></script><br />
<script language="javascript" src="http://mundogeek.net/sh/js/shBrushPython.js"></script><br />
<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = 'http://mundogeek.net/sh//flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2008/04/15/interactuar-con-webs-en-python/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Cómo descargar con Pando</title>
		<link>http://mundogeek.net/archivos/2007/05/25/como-descargar-con-pando/</link>
		<comments>http://mundogeek.net/archivos/2007/05/25/como-descargar-con-pando/#comments</comments>
		<pubDate>Fri, 25 May 2007 11:29:33 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bittorrent]]></category>
		<category><![CDATA[descarga]]></category>
		<category><![CDATA[descargar]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[mejor]]></category>
		<category><![CDATA[mejores]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[paginas]]></category>
		<category><![CDATA[pando]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[webs]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2007/05/25/como-descargar-con-pando/</guid>
		<description><![CDATA[Esto es un tutorial de Pando en Windows, paso a paso, desde la instalación a cómo descargar con Pando, para inútiles. Lo primero es descargar el programa desde su página web: Descargar Pando. De entre las opciones que nos dan en la página marcamos la que aparece con el logo de Windows, el que dice [...]]]></description>
			<content:encoded><![CDATA[<p>Esto es un <strong>tutorial de Pando</strong> en Windows, paso a paso, desde la instalación a cómo <strong>descargar con Pando</strong>, para inútiles.</p>
<p>Lo primero es descargar el programa desde su página web: <a href="http://www.pando.com/download" title="Descargar Pando">Descargar Pando</a>. De entre las opciones que nos dan en la página marcamos la que aparece con el logo de Windows, el que dice &#8220;Windows Vista, XP, 2000 (SP4)&#8221; o algo similar, y pulsamos sobre el botón &#8220;Download Pando Now!&#8221; (Descargar Pando ahora).</p>
<p><img src="http://mundogeek.net/wp-content/descargar-pando.png" alt="Descargar Pando" title="Descargar Pando" /><span id="more-1106"></span></p>
<p>Se mostrará una página sobre cómo instalar Pando y a los pocos segundos empezará la descarga. Si te pregunta, indica al navegador dónde lo quieres guardar, por ejemplo en el escritorio.</p>
<p>Iniciamos el instalador haciendo doble clic sobre el programa descargado. Tan sencillo como pulsar Siguiente, Siguiente, Siguiente (Next).</p>
<p>Una vez instalado podemos ejecutar el programa haciendo doble clic sobre el icono del escritorio. Si Windows nos pregunta si queremos mantener el programa bloqueado, le responderemos que lo desbloquee, para que el firewall de Windows no le impida aceptar conexiones.</p>
<p>Pando nos preguntará si queremos que se use el programa para descargar torrents además de pandos (Download torrents?). Marcamos la casilla &#8220;Don&#8217;t ask me again&#8221; (No me preguntes de nuevo) y seleccionamos Yes (Si) o No thanks (No gracias) dependiendo de si tenemos o no algún otro programa instalado para descargar torrents, como Azureus, BitComet o uTorrent.</p>
<p><img src="http://mundogeek.net/wp-content/pando-torrents.png" alt="Pando torrents" title="Pando torrents" /></p>
<p>Este es el aspecto de la ventana principal de Pando</p>
<p><img src="http://mundogeek.net/wp-content/pando-inicio.png" alt="Pando" title="Pando" /></p>
<p>Seleccionamos Options -> Transfers. Aquí podemos limitar la velocidad máxima de subida (Limit upload speeds to * KB/s). Mi consejo es que marqueis esta casilla y pongais como valor un 80% de vuestra velocidad de subida, de forma que no se sature la conexión. Si no sabeis la velocidad de subida de vuestra conexión podeis usar, por ejemplo, el <a href="http://www.testdevelocidad.es/">test de velocidad de ADSL Zone</a>. Por ejemplo mi resultado en el test de velocidad es 320kbps de subida; dividimos esta cantidad entre 8 para obtener los KB/s: 40KB/s, y hacemos un 80% de la cantidad (multiplica por 80 y divide entre 100) lo que me da que el valor que debería colocar es 32.</p>
<p>Si pulsamos sobre Advanced Connection Settings (Opciones avanzadas de conexión) en la parte inferior se mostrará un nuevo diálogo en el que podemos ver el puerto usado por Pando (For incoming connections use port, Para conexiones entrantes usar el puerto) e indicar si alternativamente queremos usar los puertos 563 y 443 si el primero está cerrado.</p>
<p><img src="http://mundogeek.net/wp-content/configurar-pando.png" alt="Configurar pando" title="Configurar pando" /></p>
<p>Podemos comprobar los puertos haciendo clic sobre Test my connection (Probar mi conexión). Si para todos los test nos muestra PASS, todo está correcto y podremos descargar a la máxima velocidad; si no es así, el puerto indicado está cerrado, y por lo tanto tendremos que abrirlo en el firewall o en el router.</p>
<p>Por último en Storage (Almacenamiento) podemos seleccionar la carpeta en la que se descargarán los archivos.</p>
<p>Ahora que hemos terminado de configurar Pando a nuestro gusto, vamos a ver cómo descargar con Pando. Vamos a necesitar un archivo .pando con la información necesaria para el programa sobre cómo descargar lo que nos interesa. Como ejemplo vamos a descargar un vídeo con un mensaje de presentación del CEO de Pando. Haced clic sobre <a href="http://www.pando.com/files/Welcome_to_Pando.pando">este enlace</a>.</p>
<p>Ahora hacemos doble clic sobre el archivo .pando que hemos descargado, lo que abrirá Pando, que comenzará la descarga. Podemos ver el nombre del archivo (package, paquete), quién lo comparte (from, de) y datos sobre la descarga (received, recibido). En concreto en la imagen podemos ver que se han descargado 7.68MB de 7.89 que ocupa el archivo, lo que hace un 97% descargado; falta 0 segundos para terminar la descarga, y actualmente está descargando a 265KB/s.</p>
<p><img src="http://mundogeek.net/wp-content/descarga-pando.png" alt="Descarga pando" title="Descarga pando" /></p>
<p>Cuando termine la descarga la barra de progreso se sustituirá por un par de botones Open y Share. El botón Open sirve para abrir el archivo que acabamos de descargar. El botón Share sirve para compartir que el archivo, de manera que se mantenga durante más tiempo en la red Pando. Esto último es muy recomendable, si no se hace y un archivo no se comparte durante un cierto tiempo se borrará de la red y cuando otra persona quiera descargarlo le mostrará un mensaje indicándole que ya no está disponible.</p>
<p>Por último comentaros que si seleccionamos un archivo y pulsamos sobre Clear, el archivo se borrará de la lista.</p>
<p>Podéis encontrar <strong>páginas de pando para descargar</strong> en <a href="http://mundogeek.net/archivos/2007/05/24/mejores-paginas-pando/" title="Mejores páginas Pando">Mejores páginas Pando</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2007/05/25/como-descargar-con-pando/feed/</wfw:commentRss>
		<slash:comments>89</slash:comments>
		</item>
		<item>
		<title>Páginas Pando</title>
		<link>http://mundogeek.net/archivos/2007/05/24/mejores-paginas-pando/</link>
		<comments>http://mundogeek.net/archivos/2007/05/24/mejores-paginas-pando/#comments</comments>
		<pubDate>Thu, 24 May 2007 13:02:54 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bittorrent]]></category>
		<category><![CDATA[descarga]]></category>
		<category><![CDATA[descargar]]></category>
		<category><![CDATA[mejor]]></category>
		<category><![CDATA[mejores]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[paginas]]></category>
		<category><![CDATA[pando]]></category>
		<category><![CDATA[webs]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2007/05/24/mejores-paginas-pando/</guid>
		<description><![CDATA[Estas son algunas de las mejores webs de Pando que conozco. MarvinZone Pando Kualda Pando Spain Pando Station Series Pando Desde un lugar mejor Tope DivX Si sabeis de alguna otra candidata a la mejor web pando, dejad un comentario]]></description>
			<content:encoded><![CDATA[<p>Estas son algunas de las mejores webs de <strong>Pando</strong> que conozco.</p>
<ul>
<li><a href="http://www.marvinzone.com/" title="Pando">MarvinZone</a></li>
<li><a href="http://www.pandopuntokualda.com/index.php" title="Pando">Pando Kualda</a></li>
<li><a href="http://www.pandospain.com/pando.php" title="Pando">Pando Spain</a></li>
<li><a href="http://www.pandostation.com/foro/index.php" title="Pando">Pando Station</a></li>
<li><a href="http://www.seriespando.es/foro/index.php?action=forum" title="Pando">Series Pando</a></li>
<li><a href="http://www.desdeunlugarmejor.com/index.php?action=forum" title="Pando y descarga directa">Desde un lugar mejor</a></li>
<li><a href="http://www.newtpd.com/index.php" title="Pando">Tope DivX</a></li>
</ul>
<p>Si sabeis de alguna otra candidata a la <strong>mejor web pando</strong>, dejad un comentario <img src='http://mundogeek.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2007/05/24/mejores-paginas-pando/feed/</wfw:commentRss>
		<slash:comments>123</slash:comments>
		</item>
		<item>
		<title>The Dilbert Blog</title>
		<link>http://mundogeek.net/archivos/2005/10/26/the-dilbert-blog/</link>
		<comments>http://mundogeek.net/archivos/2005/10/26/the-dilbert-blog/#comments</comments>
		<pubDate>Wed, 26 Oct 2005 11:47:53 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bitacoras]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[webs]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2005/10/26/the-dilbert-blog/</guid>
		<description><![CDATA[Bienvenido a la primera entrada de mi bitácora. Si estás leyendo esto en el trabajo, felicidades por vencer al sistema. Si estás leyéndolo en tu tiempo libre, realmente necesitas encontrar un trabajo dónde te paguen por hacer esta clase de cosas. Y así comienza &#8220;The Dilbert Blog&#8221;, la nueva bitácora de Scott Adams que tratará [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img454.imageshack.us/img454/8775/dilbert2mw.gif" alt="Dilbert y la famosa danza de victoria del ingeniero" align="right" /><br />
<blockquote>Bienvenido a la primera entrada de mi bitácora.</p>
<p>Si estás leyendo esto en el trabajo, felicidades por vencer al sistema. Si estás leyéndolo en tu tiempo libre, realmente necesitas encontrar un trabajo dónde te paguen por hacer esta clase de cosas.</p></blockquote>
<p>Y así comienza <a href="http://dilbertblog.typepad.com/" hreflang="en-us" title="Bitácora dedicada a una de las mejores tiras cómicas de nuestro tiempo">&#8220;The Dilbert Blog&#8221;</a>, la nueva bitácora de Scott Adams que tratará mayormente, se supone, sobre <a href="http://www.unitedmedia.com/comics/dilbert/" hreflang="en-us" title="Sitio web oficial de Dilbert">Dilbert</a> [<a href="http://www.unitedmedia.com/comics/dilbert/spanish/index.html" hreflang="es" title="Dilbert en castellano">es</a>].</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2005/10/26/the-dilbert-blog/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XIII Premios PC Actual 2005</title>
		<link>http://mundogeek.net/archivos/2005/10/07/xiii-premios-pc-actual-2005/</link>
		<comments>http://mundogeek.net/archivos/2005/10/07/xiii-premios-pc-actual-2005/#comments</comments>
		<pubDate>Fri, 07 Oct 2005 20:25:14 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bitacoras]]></category>
		<category><![CDATA[pc]]></category>
		<category><![CDATA[premios]]></category>
		<category><![CDATA[tecnología]]></category>
		<category><![CDATA[webs]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2005/10/07/xiii-premios-pc-actual-2005/</guid>
		<description><![CDATA[Vía Microsiervos descubro que Mundo geek está nominada a la mejor bitácora sobre tecnología del año en los XIII Premios de la revista PC Actual. No sé cómo hemos podido ir a parar a una lista que incluye ilustres como Barrapunto, Alt 1040 o el mismo Microsiervos. Se ha barajado la posibilidad de que en [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img186.imageshack.us/img186/9763/trofeopcactual0ef.jpg" alt="Trofeo de los próximos premios de PC Actual" align="right" /><a href="http://www.microsiervos.com/archivo/weblogs/premios-pc-actual-2005.html" title="Microsiervos nos trae la primera señal del Apocalipsis" hreflang="es">Vía Microsiervos</a> descubro que Mundo geek está nominada a la mejor bitácora sobre tecnología del año en los <a href="http://www.pc-actual.com/premios2005" title="Presentación de la XIII edición de los premios PC Actual" hreflang="es">XIII Premios de la revista PC Actual</a>.</p>
<p>No sé cómo hemos podido ir a parar a una lista que incluye ilustres como <a href="http://www.barrapunto.com/" title="Barrapunto es, probablemente, la web sobre software libre en castellano más importante del mundo" hreflang="es">Barrapunto</a>, <a href="http://www.alt1040.com/" title="Bitácora de Eduardo Arcos, un verdadero maestro entre los geeks y veterano en estas lides" hreflang="es-mx">Alt 1040</a> o el mismo <a href="http://www.microsiervos.com/" title="Microsiervos es, como dicen ellos, la colección de apuntes de un grupo de geeks, y una de las mejores webs de tecnología que conozco" hreflang="es">Microsiervos</a>. Se ha barajado la posibilidad de que en PC Actual sean supersticiosos y no quieran nominar 13 webs, pero viendo el número de edición se ha desechado. Inexplicable.</p>
<p>Podeis votar en la encuesta para decidir los mejores productos del año en 25 categorías, desde el mejor ordenador de sobremesa, hasta el producto más revolucionario, pasando entre otros por las categorías de seguridad, software más innovador, herramientas de intercambio y comunicación o reproductores MP3. Y de paso, os podeis llevar un jugoso premio: portátiles, videocámaras, webcams, subscripciones a la revista, etc&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2005/10/07/xiii-premios-pc-actual-2005/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

