Feeds RSS en deremate.com.ar (2)


Continuando con el post Feeds RSS en deremate.com.ar y a pedido de HellMind acá va la explicación y los scripts para crearte tus propios feeds RSS en deremate.com.ar.

Básicamente el tema es crear un proceso que haga la búsqueda en deremate y luego generar los feeds RSS para que sean accedidos con cualquier agregador o reader que se quiera.

Quiero aclarar que esto fue realizado muy rápidamente y sin mucha dedicación, por lo cual obviamente hay muuuucho para mejorar.

El primer script lo llamaremos busquedas.sh (puede ser invocado con un cron) y se encarga de disparar el proceso de búsqueda. Por cada una de las cadenas de texto a buscar contenidas en lista-busqueda.txt dispara el script search-deremate.sh que realiza la búsqueda propiamente dicha.

busqueda.sh
	for i in `cat lista-busquedas.txt`; do search-deremate.sh $i; done


lista-busquedas.txt
	comodore
	commodore
	sun
	sparc
	tungsten+palm
	tungsten+palm+t5
	treo



search-deremate.sh
	wget -O $1 "http://www.deremate.com.ar/form/advSearch.asp?txtSearch=$1&Type=0&searchKey1=$1&objectFilter=0&auctionFilter=0&display=3&sortBy=&sortDirection=&searchKey123=&searchKey1222=&txtmoneda=1&txtregion1=0&txtCatg=&cbOperators=0&chkTarifVar=&txtUserMinCalif=&txtExcludeWords=&TipoVenta=0&chkUserMinCalif=False&chkExcludeWords=False&cbOperators2=0&chkSoloFoto=False&iTypePage=1&TipoRemates=0&TipoRemates1=0&TipoRemates2=0&IdCamino=0&TipoOrden=1" 
	grep viewItem $1 | grep -v comprainm | grep " " | sed 's//accdb/http://www.deremate.com.ar/accdb/g' | sed 's//<br>/g' | sed 's/ //g' > $1.html

Luego de todo esto, un script PHP se encarga de tomar los datos dejados por los scripts anteriores y armar el feed correspondiente (para crear los feeds utilizo una clase a tal fin denominada FeedCreator.class.php).

Este script PHP debe ser colocado en un web server y ser invocado (por ejemplo con un cron) para generar los feeds. Luego uno debe subscribirse directamente al feed cuyo nombre se corresponde directamente con cada uno de los strings de búsqueda punto xml.

Por ejemplo de acuerdo a nuestra lista-busquedas.txt, podemos subscribirnos al feed http://tusitio.tuservidor.com/path/commodore.xml



crearfeed.php
	<?

	include("feedcreator.class.php");
	// para cada feed

	$busquedas = file("lista-busquedas.txt");
	foreach( $busquedas as $busqueda ) {

	 $rss = new UniversalFeedCreator();	 $rss->title = "Deremate.com.ar: ".trim($busqueda);

	 $rss->description = "Remates Interesantes de ".trim($busqueda);	 // Aqui se debe reemplazar esta direccion por la del servidor donde pongas este script.

	 $rss->link = "http://tusitio.tuservidor.com";	 // Aqui tambien se debe reemplazar la siguiente direccion por el path completo

							 // al directorio donde se encuentre este sxcript.

	 $rss->syndicationURL = "http://tusitio.tuservidor.com/path/".$PHP_SELF; 

	 $lines = file(trim($busqueda).".html");
 	 foreach ( $lines as $line ) {

		$linea = eregi_replace("<a href=\"","",$line);

		$linea = eregi_replace("</a><br>","",$linea);

		$linea = eregi_replace("\"","",$linea);

		$arr = split(">",$linea);

		$arr[0] = trim($arr[0]);

		$arr[1] = trim($arr[1]);

		$item = new FeedItem();

		$item->title = $arr[1];

		$item->link = $arr[0];

		$item->date = time();

		$item->author = "Deremate.com.ar";

		$rss->addItem($item);

		}

	$rss->saveFeed("RSS1.0", trim($busqueda).".xml");

	}

	?>

NOTA: Cabe aclarar que esto esta desarrollado para plataformas Unix, en concreto esta corriendo sobre un Linux que utiliza mi proveedor de web-hosting. Habría que trabajarlo un poco para pasarlo a Windows. Por otro lado tampoco sería muy difícil modificarlo para generar feeds RSS de otros sitios.

Otra opción.

Otra manera mucho más sencilla y para la que no se necesita instalar nada es utilizar el robot que creé en OpenKapow al que pueden acceder directamente aquí.

La ventaja es que no se necesita tener un server donde instalar nada, ya que se utilizan directamente los servidores de OpenKapow. Por todo esto esta última opción resulta mucho más cómoda y conveniente. El único tema es que si quieren crearse sus propios robots hay que bajarse el desarrollador de OpenKapow.

Deja un comentario

Subir ↑