Capturar datos de otra web en PHP

Nov 30, 2011 No Comments by

A veces es necesario extraer datos “públicos” desde alguna fuente en internet, en PHP, lo podemos hacer con un GET y una que otra expresión regular.

Como en todo, hay varias formas, pero creo que la más sencilla es utilizar la función file_get_contents para realizar un simple GET y obtener el contenido del sitio web.

La función file_get_contents soporta varios wrappers, desde un archivo local (ejemplo /tmp/my-file) a una url http, pasando por ftp, scp, etc. (más información sobre wrappers).

Vamos a extraer la UF desde el sitio www.terra.cl/valores/

Al analizar el código fuente del sitio, podemos ver que la UF se encuentra en el siguiente trozo de código

<tr bgcolor="EFEBE7">
            <td align="right" class="texto2">UF : </td>

            <td class="texto2"><b>22.213,43</b></td>
</tr>

Solo nos queda realizar una expresión regular que sea capaz de representar al patrón del trozo de código y la sección que deseamos capturar.

<?php
// Example by deerme.org
$data = file_get_contents("http://www.terra.cl/valores/");

if ( preg_match('|<td align="right" class="texto2">UF : </td>\s+<td class="texto2"><b>(.*?)</b></td>|is' , $data , $cap ) )
{
	echo "UF ".$cap[1];
}

Si ejecutamos nuestro script (vía web o por consola) obtenemos la UF de hoy a través de Terra xD.

PHP

About the author

The author didnt add any Information to his profile yet
No Responses to “Capturar datos de otra web en PHP”

Leave a Reply


- one = 0