Posts guardados como 'Informática'
En mi post sobre “cómo hacer una copia de seguridad de tu sitio favorito de enlaces” explicaba cómo hacer una copia completa de un sitio web, pero también advertía que:
La copia de un sitio web “a lo bestia” no es completamente funcional y suele ocupar mucho más de lo que ocupa el sitio original.
Así que me comprometí a ofrecer una forma elegante de proteger toda esa información que contienen los sitios de enlaces amenazados por el Sinderetazo.
La idea no es tan simple como en el post anterior. Esta vez lo que propongo requiere saber un poquín de programación pero el resultado nos permitirá obtener un fichero de unos pocos megas con todos los enlaces de tu sitio de enlaces favorito (en este caso, tomaremos como ejemplo seriesyonkis.com).
Aunque no lo conocía de antes (así que el script probablemente diste mucho de ser el mejor script posible) he escogido Ruby como lenguaje. La razón es que permite muy fácilmente hacer conexiones vía http y obtener, para entendernos, el html de una página en formato cadena de texto:
#Get generically, HTTP content
# Receives a URL and returns its content
def gethttpcontent(url)
begin
url = URI.parse(url)
#Perform the HTTP query and get the content
req = Net::HTTP::Get.new(url.path);
res = Net::HTTP.start(url.host, url.port)
{ |http| http.request(req); }
#Return the body
return res.body;
rescue
return ""
end
end
Por cierto, aprovecho para pedir perdón por el uso patatero que hago de mi inglés a lo largo del código fuente. Cuando programo me flipo muchísimo.
Además de estas facilidades (cortesía de la librería net/http de Ruby) utilizo también las facilidades de Ruby para tratar cadenas. En concreto, utilizo lo que llaman pattern matching para recorrer elementos de una página.
content =
gethttpcontent("http://www.seriesyonkis.com/")
content.scan(/<li class="page_item">(.*?)<\/li>/)
Usando esta técnica he escrito funciones que permiten descargar cada serie, cada temporada de cada serie, cada episodio de cada temporada y cada enlace de cada episodio.
En particular, para descargar los enlaces he tenido que hacer un pequeño apaño porque los enlaces no están escritos explícitamente en el código fuente de la página (están protegidos -por decirlo de alguna manera- por funciones JavaScript).
La manera de salvar este pequeñín obstáculo ha sido descargar los ficheros JavaScript y ejecutarlos localmente (haciéndoles creer que están siendo ejecutados desde un navegador):
function locclass() {
this.search = '" + locationsearch + "'; }
location = new locclass();
function docclass() {
this.write = docwrite; }
function docwrite(str) {
print(str); }
document = new docclass();
Donde locationsearch es una variable que no viene a cuento ahora.
Usando estas técnicas, he escrito el script sy-getseries.rb, que permite obtener un fichero (con todos los datos necesarios para generar algo del estilo de sy-links20110124.ods, de sólo 2.83Mb) con los más de 163.000 enlaces que a día de hoy hay en seriesyonkis.
PD: Para abrir el .ods necesitarás LibreOffice o una aplicación compatible.
Enlace corto:http://capo.gl/8m |
Categoría: Informática |
Tags: · Ley Sinde

Como iba diciendo, la famosa ley Sinde amenaza con cerrar sitios web (de hecho, en el maldito texto se habla de la posibilidad de cerrar “Servicios de la Sociedad de la Información”) sólo por contener enlaces a material protegido por derechos de autor, en lo que parece una alusión casi directa a sitios como SeriesYonkis o Vagos.
Dejando de lado que considero catastrófica la persecución de sitios de enlaces (sólo ejercen una labor informativa y siquiera alojan los contenidos que presuntamente violan derechos de propiedad intelectual), considero que la ley es completamente inútil y me dispongo a mostrarlo, estos días, de diferentes maneras.
Como primer ejemplo, tanto para mostrar la inutilidad de la ley, como para servir de inspiración a quienes puedan tener interés, os propongo que penséis en haceros copias de seguridad de vuestros sitios favoritos de enlaces. Si usas Linux, puedes hacer una copia bastante funcional de un sitio web de enlaces con sólo copiar y pegar este comando en tu línea de comandos:
wget –html-extension –convert-links -r -p -U Mozilla http://www.misitiodeenlaces.com/index.html
Si quieres profundizar en esta opción, te recomiedo que eches un vistazo al artículo que dedican a wget en Linux Reviews.
Si usas Windows, o lo de la consola no te mola demasiado, no desesperes: ¡no hace falta que vayas navegando y guardando enlace a enlace! Siempre te quedan los programas de descargas de sitios web. Un ejemplo más que suficiente es HTTrack. Échale un vistacín, que seguro que te resulta útil. Y, si no te gusta, busca “website copier” utilizando tu buscador favorito, que verás que encuentras opciones para todos los gustos.
Eso sí, te advierto que no es oro todo lo que reluce. La copia de un sitio web “a lo bestia” no es completamente funcional y suele ocupar mucho más de lo que ocupa el sitio original. Un sitio web como Series Yonkis puede ocupar unos 30Gb por este procedimiento (cuando, en realidad, sus enlaces caben en un fichero de texto de unos pocos megas), por lo que te recomiendo que estudies un poco cómo afinar las opciones de tu programa de descarga de sitios web antes de lanzarte a lo loco a copiarlo todo.
Entonces, ¿qué alternativa nos queda para salvaguardar toda esa información tan valiosa que ahora se encuentra en peligro? Mañana -pasado mañana a lo más tardar- os propondré una solución mucho más elegante.
Enlace corto:http://capo.gl/8c |
Categoría: Informática |
Tags: · Ley Sinde
Acabo de descubrir SyntaxHighlighter, una extensión de WordPress que permite añadir pedacitos de código de programas en tus posts de forma bastante chula. Por ejemplo, un “hola mundo” -eso sí, un poco insistente- en C, podría quedar más o menos así:
int main() {
int i;
//Saludo 10 veces, nada menos
for(i=0; i<10; i++) {
printf("¡Hola mundo!"); } }
return 0;
El caso es que instalarlo y utilizarlo es más fácil que el mecanismo de un chupete. Desde la sección Plugins de WordPress (en la zona privada) pinchas en añadir nuevo, buscas “SyntaxHighlighter Evolved”, lo añades y lo activas. Ahora ya puedes meter en tus posts pedacitos de código. Basta con rodearlo así:
<pre class="brush: c">
/* Aquí iría tu código en C */
</pre>
Después de brush: puedes especificar el lenguaje que quieres utilizar. Puedes consultar una lista de lenguajes disponibles en la web oficial del plugin. Si tienes problemas avísame por los comentarios y te echo una mano.
Enlace corto:http://capo.gl/7x |
Categoría: Informática |
Tags: · Wordpress