Comunidad de diseño web y desarrollo en internet

CodeIgniter - Interaccion dinamica con otros sitios web

CodeIgniter es un liviano framework para php , que cuenta con bastantes librerías/clases/helpers y opciones muy útiles que nos ahorra mucho tiempo a la hora de empezar a programar.

Lamentablemente CodeIgniter no cuenta con ninguna herramienta para la “extracción” y manipulación de strings útiles, como en este caso usando “Xclass” , una librería que programe para esta tarea.

Cual tarea?
en ocasiones necesitaremos de alguna manera “interactuar” con otra pagina que no nos facilita ninguna api ni herramienta para hacerlo.. pues en este caso supongamos necesitemos extraer las “ultimas noticias” o las “estadisticas del mundial”,”el clima”,”últimos comentarios de una persona”..

Xclass nos facilita la tarea , solo ingresando 3 parámetros:


  • La url de la pagina a solicitar la informacion.
  • La cadena desde donde se iniciara a extraer.
  • La cadena donde se terminara de extraer.

(A parte de webs , Xclass también sirve para cadenas comunes a las que necesitemos extraer una sección)

Instalando Xclass en CodeIgniter



http://xerotutos.vacau.com/Xclass.zip

Para instalar una librería en CodeIgniter , solo necesitamos descargar Xclass.php , ir a la carpeta en donde esta corriendo CodeIgniter->system->application->libraries y pegar Xclass.php.

Siguiendo esto ya “instalamos” Xclass y esta lista para usarse en CodeIgniter.

Usaremos mi perfil de Cristalab , extraeremos mi numero de post,tips,clablevel….

Crearemos un controlador “Xero.php” en la carpeta system->application->controlles con lo siguiente:

Código :

 <?php
class Xero extends Controller{
function Xero()
{
parent::Controller();
}
function index()
{
$this->load->library("xclass");
echo $this->xclass->xas('http://www.cristalab.com/usuario/88793-xer0s','<div class=”profile-info”>','<div class=”pie”></div>');
}
}
?>


Simplemente es un controlador normal , llamamos a la libreria “Xclass” luego a la funcion con 3 parametros:

Código :

$this->load->library("xclass");
$this->xclass->xas("$target","$primera_cadena","$segunda_cadena");


El primer parámetro es la url, el segundo es la primera aparición donde empezaremos a extraer el código y el tercer parámetro indica hasta donde seguirá extrayendo.

La parte que nos interesa:

Código :

<div class=”profile-info“>
<p>
<big><strong>Xer0s</strong> es <em>Usuario</em> de Cristalab</big><br />
<a href=”http://xerotutos.vacau.com” target=”_userwww“>http://xerotutos.vacau.com</a><br />
<span>Con <strong class=”relevante“>63</strong> de
<strong><acronym title=”Nivel de participaci&oacute;n en la comunidad. Lo obtienes posteando, con tutoriales, tips, etc.“>clabLevel</acronym></strong></span><br />
Desde el 05 Ene 2010 </p>
<p></p>
</div>
<ul id=”user-stats“>
<li class=”mssages-q“><a href=”http://foros.cristalab.com/search.php?search_author=Xer0s“>21 mensajes</a></li>
<li>0 tutoriales</li>
<li>0 ejemplos</li>
<li>1 tips</li>
<li>0 art&iacute;culos</li>
</ul>
<div class=”pie“></div>


(Extraído del ”Código fuente”)

Mi perfil:(primer parámetro)
http://www.cristalab.com/usuario/88793-xer0s

El segundo parámetro:

<divclass=”profile-info“>

El tercer Parámetro:

<div class=”pie“></div>

Dando como resultado: http://localhost/index.php/xero/



Así de simple ha sido extraer esa información , solo usando el parámetro que extraemos viendo el html que deseamos extraer. También es aconsejable leer sobre expresiones regulares.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate