Capturar datos de otra web en PHP

Nov 30, 2011 198 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, Web Scraping

About the author

Ingeniero en Informática, Oracle Certified Master Java EE 6 Enterprise Architect, Oracle Certified Professional Java Programmer. Experto en distintas ramas de la computación y otras "yerbas" xD. Si te gusto este post, sígueme en @deerme_org, escríbeme a info AT deerme.org o contactame por linkedin.

198 Responses to “Capturar datos de otra web en PHP”

  1. David says:

    Gracias por compartir conocimiento.Esta muy interesante la solución, pero en caso de querer datos que no están explicitamente en el código fuente del sitio, cómo podrías recogerlos para usarlos en tu web?

    Por ejemplo de esta web:
    http://www.mismarcadores.com/futbol/peru/torneo-descentralizado/

    He mirado el código fuente y no aparecen los resultados de los partidos, cómo puedo acceder a ellos para usarlos en mi página php?

  2. deerme.org says:

    Hola David.

    Efectivamente ese sitio no “imprime” los resultos en el código fuente, si no, los extrae de forma asincrona con una llamada AJAX. Prueba la pestaña de red de Firebug, puedes ver que el sitio realiza una llamada a una url d.mismarcadores.com/x/feed y le pasa como parametros ciertos id (los cuales deben indetificar al pais, liga, etc.).

    Para extraer esos datos, es más facil si utilizar CURL, ya que nos permite inyectar de una forma sencilla los header de la petición HTTP (el sitio valida que la llamada tenga ciertos headers especifcios). Prueba el siguiente código, verás que imprime los resultados.

    Ojo, debes eliminar el espacio entre http y :, ubicado en la primera instrucción y en el referer (lo hago para que el wordpress no modifique esa linea)

    <?php
    
    $c = curl_init('http ://d.mismarcadores.com/x/feed/t_1_152_257_-3_es_y_1');
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($c, CURLOPT_HTTPHEADER, array(
    "Accept: */*",
    "Accept-Language: *",
    "Host: d.mismarcadores.com",
    "Referer: http ://d.mismarcadores.com/x/feed/proxy",
    "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0",
    "X-Fsign: SW9D1eZo",
    "X-GeoIP: 1",
    "X-Requested-With: XMLHttpRequest",
    "X-utime: 1"
    ));
    $content = curl_exec($c);
    curl_close($c);
    
    echo $content;
    

    Eso si, devuelve todo en una sola línea, ahora debes parsear los datos, para eso debes identificar que carácteres utiliza para el salto de registro, salto de campo, etc.

    Saludos

  3. David says:

    Uow! GRACIAS, ers un grande.

  4. Miguel Angel says:

    Hola un saludo muy bueno tu aporte, pero me podrias ayudar tengo problemas en esta web quiero obtener esos datos porfavor se te agradece
    Gracias
    http://admision.unprg.edu.pe/siad/s_resultados/r_admision/busquedaescuela.php?idescuela=3&modalidad=O&buscar=Buscar

  5. deerme.org says:

    Hola Miguel

    No es tan complicado, eso si, debemos anotar que datos se envian en el POST que se hace a la URL. Te dejo un pequeño ejemplo que extrae los datos para dos tipos de carrera en ese sitio.

    (Ojo que agregue un espacio en el string CURLOPT_URL http, para que el wordpress no modifique dicha línea)

    <?php
    
    $categories = array(
    "3" => "ADMINISTRACION",
    "1" => "AGRONOMIA");
    $peoples = array();
    
    foreach( $categories as $category_key => $category  )
    {
    
    	// Make the fields POST
    	$fields = array(
    		"idescuela" => $category_key,
    		"modalidad" => "O",
    		"buscar" => "Buscar"
    	);
    	//$raw_fields = "idescuela=3&modalidad=O&buscar=Buscar";
    	$raw_fields = http_build_query($fields);
    	// Make the POST
    	$ch = curl_init();
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    	curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
    	curl_setopt($ch,CURLOPT_URL, "http ://admision.unprg.edu.pe/siad/s_resultados/r_admision/busquedaescuela.php?pri=si");
    	curl_setopt($ch, CURLOPT_POST, 1);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    	curl_setopt($ch,CURLOPT_POSTFIELDS, $raw_fields);
    	//execute post
    	$results = curl_exec($ch);
    	//close connection
    	curl_close($ch);
    
    	// Extract the data
    	if ( preg_match_all('|<tr class="texto" .*?>\s+<td><div align="left">(.*?)</div></td>\s+<td><div align="left">(.*?)</div></td>\s+<td><div align="left">(.*?)</div></td>\s+<td><div align="left">(.*?)</div></td>\s+<td id="ingreso_v">\s+<span class=\'.*?\'>(.*?)</span>\s+</td>(.*?)</tr>|is' , $results, $output) )
    	{
    		foreach( $output[1] as $key => $value )
    		{
    			$peoples[] = array(
    			"paterno" => trim($value),
    			"materno" => trim($output[2][$key]),
    			"nombre" => trim($output[3][$key]),
    			"carrera" =>  trim($output[4][$key]),
    			"estado" => trim($output[5][$key])
    			);
    		}
    	}
    }
    
    print_r($peoples);
    
  6. Anibal says:

    hola estuve analizando los código y lo quise implementar, pero no me resulto
    necesito sacar de esta pagina http://www.pasosfronterizos.gov.cl/cf_pehuenche.html

    el dato
    Observaciones Abierto

    quiero ver si me puedes ayudar por favor.
    Muchas gracias desde ya

  7. deerme.org says:

    Hola Anibal, es posible que ya tengas la solución, de todas formas te dejo la extracción con file_get_contents.

    <?php
    
    $source = file_get_contents("ht tp://www.pasosfronterizos.gov.cl/cf_pehuenche.html");
    
    if ( preg_match('|<td class="txt_noticia"><strong>Observaciones</strong></td><td valign="top">(.*?)</td>|is',$source,$cap) )
    {
            echo $cap[1];
    }
    

    PD: Recuerda eliminar el espacio en la especificación del prótocolo (http) que ingrese intencionalmente (para que wordpress no me haga el reemplazo por un enlace)

  8. luis says:

    hola amigo e mirado tu código y quiero implementarlo en esta pagina web pero no me deja http://www.registraduria.gov.co/servicios/censo.htm
    quiero sacar de hay todos los datos de los campos
    departamento,municipio,puesto,dirreccion del puesto,fechade inscripcion,mesa

  9. luis says:

    asi lo e puesto pero no me sale e puesto para que llame solo el campo departamento y no me sale nd xd

    <?PHP

    // Example by deerme.org

    $data = file_get_contents('http://www.registraduria.gov.co/servicios/censo.htm?nCedula=1045704314&buscar4=Buscar&#039 ;) ;

    if ( preg_match('|Mesa(.*?)|is’ , $data , $cap ) )
    {
    echo “Departamento:”.$cap[1];
    }

    ?>

  10. luis says:

    <?PHP

    $data = file_get_contents('http://www.registraduria.gov.co/servicios/censo.htm?nCedula=1045704314&buscar4=Buscar&#039 ;) ;

    if ( preg_match('|Mesa(.*?)|is’ , $data , $cap ) )
    {
    echo “Departamento:”.$cap[1];
    }

    ?>

  11. luis says:

    if ( preg_match(‘|Mesa(.*?)|is’ , $data , $cap ) )

  12. deerme.org says:

    Hola Luis

    He mirado la fuente y si miras el código fuente, te puedes dar cuenta que el sitio html utiliza un iframe, finalmente la página real es php. Te dejo unas lineas que son capaces de extraer los datos, esta vez utilizando DOM, ya que es más facil extraer datos (tambien se podria hacer con una expresión regular).

    <?php
    //Example by deerme.org
    $source = file_get_contents('http:/ /www3.registraduria.gov.co/censo/_censoresultado.php?nCedula=1045704314');
    libxml_use_internal_errors( true );
    libxml_clear_errors();
    $html = new DOMDocument();
    $html->loadHTML($source);
    $xpath = new DOMXPath( $html );
    $result = array();
    // Cada TR
    $trs = $html->getElementsByTagName("tr");
    foreach ( $trs as $tr )
    {
            // Cada TD
            $title = $tr->getElementsByTagName("td")->item(0)->nodeValue;
            $value = $tr->getElementsByTagName("td")->item(1)->nodeValue;
    
            echo $title . "\t" . $value."\n";
            $result[$title] = $value;
    }
    
    //print_r($result);
    

    (PD: Recuerda eliminar el espacio en http)

  13. Jose Morales says:

    Buen día hermano.

    estoy practicando en obtener la data de wunderground, dime si lo siguiente está bien y disculpa.

    de la pagina
    view-source:http://www.wunderground.com/sky/ShowSky.asp?TheLat=8.289000&TheLon=-62.723000&TimeZoneName=America/Caracas

    <?php
    $data = file_get_contents("view-source:http://www.wunderground.com/sky/ShowSky.asp?TheLat=8.289000&TheLon=-62.723000&TimeZoneName=America/Caracas&quot ;) ;

    if (|preg_match(Crepúsculo civil\s (.*)|is’ , $data , $cap ) )
    {
    echo “Crepúsculo civil “.$cap[1];

    Esta bien?

  14. deerme.org says:

    Hola Jose

    En teoría podría estar bien, el problema, es que el sitio cambia el idioma según el languague que indica el navagedor, si no se indica, entrega los datos en Ingles. A si que es más sencillo extraer los datos con los nombres en ingles.

    A veces es mejor usar el DOM para extraer datos (especialmente cuando estan en tablas). Te pego un ejemplo para extraer los datos:

    <?php
    //Example by deerme.org
    $source = file_get_contents("http: //www .wunderground. com/sky/ShowSky.asp?TheLat=8.289000&TheLon=-62.723000&TimeZoneName=America/Caracas");
    $dom = new DOMDocument();
    @$dom->loadHTML($source);
    $trs = $dom->getElementsByTagName("tr");
    $record = array();
    foreach ( $trs as $tr )
    {
            // Cada TD
            $title = trim($tr->getElementsByTagName("td")->item(0)->nodeValue);
            $value = trim($tr->getElementsByTagName("td")->item(1)->nodeValue);
            if ( $title == "Actual Time" )
                    $record["actual_time"] = $value;
            if ( $title == "Civil Twilight" )
                    $record["civil_twilight"] = $value;
            if ( $title == "Nautical Twilight" )
                    $record["nautical_twilight"] = $value;
            if ( $title == "Astronomical Twilight" )
                    $record["astronomical_twilight"] = $value;
            if ( $title == "Moon" )
                    $record["astronomical_twilight"] = $value;
    }
    
    print_r($record);
    

    Si lo ejecutas, tendrás los siguientes datos

    php wunderground.php
    Array
    (
        [actual_time] => 5:21 AM VET
        [civil_twilight] => 4:59 AM VET
        [nautical_twilight] => 4:32 AM VET
        [astronomical_twilight] => 2:13 AM VET
    )
    

    Saludos

    PD: Recuerda eliminar los espacios de la url

  15. luis says:

    hola amigo pero si yo al momento de digitar otro numero de cedula cambiaria el url de la pagina no me serviria este codigo

    loadHTML($source);
    $xpath = new DOMXPath( $html );
    $result = array();
    // Cada TR
    $trs = $html->getElementsByTagName(“tr”);
    foreach ( $trs as $tr )
    {
    // Cada TD
    $title = $tr->getElementsByTagName(“td”)->item(0)->nodeValue;
    $value = $tr->getElementsByTagName(“td”)->item(1)->nodeValue;

    echo $title . “\t” . $value.”\n”;
    $result[$title] = $value;
    }

    //print_r($result);

  16. luis says:

    loadHTML($source);
    $xpath = new DOMXPath( $html );
    $result = array();
    // Cada TR
    $trs = $html->getElementsByTagName(“tr”);
    foreach ( $trs as $tr )
    {
    // Cada TD
    $title = $tr->getElementsByTagName(“td”)->item(0)->nodeValue;
    $value = $tr->getElementsByTagName(“td”)->item(1)->nodeValue;

    echo $title . “\t” . $value.”\n”;
    $result[$title] = $value;
    }

    //print_r($result);

  17. luis says:

    bueno en resumen el codigo que me brindastes anteriormente no me serviria si ago la consulta con otro numero de cedula como podria hacer eso por si cambio de consulta con otro numero

  18. deerme.org says:

    Luis

    Si se puede, depende de lo que quieres hacer, por ejemplo si vas a tomar el numero de cedula desde un parametro pot GET/POST solo debes modificar la url, ya que al final inserta la url, algo como

    $source = file_get_contents('http:/ /www3.registraduria.gov.co/censo/_censoresultado.php?nCedula=' . $_REQUEST["cedula"] );

    Ahora si tienes una lista de cedulas a consultar (en un arreglo o son datos que estaban en db), debes iterar en un bucle para extraer el dato de cada licencia, algo como:

    $cedulas = array("1045704313","1045704314","1045704315","1045704316");
    
    foreach( $cedulas as $cedula )
    {
          $source = file_get_contents('http:/ /www3.registraduria.gov.co/censo/_censoresultado.php?nCedula=' . $cedula );
          // luego el resto del codigo para la extracción ...
    

    Saludos

  19. Jose Morales says:

    Mi pana da un error en la linea 11 y 12

    Notice: Trying to get property of non-object in C:\Program Files\EasyPHP-DevServer-13.1VC9\binaries\home\codesource.php on line 11

    Notice: Trying to get property of non-object in C:\Program Files\EasyPHP-DevServer-13.1VC9\binaries\home\codesource.php on line 12

    Notice: Trying to get property of non-object in C:\Program Files\EasyPHP-DevServer-13.1VC9\binaries\home\codesource.php on line 12

  20. deerme.org says:

    Si, sucede que cuando itera, algunos elementos de la busqueda con contiene los elementos que vamos a acceder, lo ideal sería verificar que sea un objeto con elementos interno, pero tambien un quix fix sería agregar un @ al inicio del comando en la línea (despues de la asignación). algo como

    $title = @trim($tr->getElementsByTagName("td")->item(0)->nodeValue);
    $value = @trim($tr->getElementsByTagName("td")->item(1)->nodeValue);
  21. Moshe says:

    Buenos dias
    Estoy intentando obtener algunos datos de esta página http://madrid.salir.com/restaurantes y no lo consigo.

    Los datos concretos son (te incluyo el codigo fuente):

    ………….
    …………..Restaurante-Terraza Kira
    ……………
    ……………..Cocina de mercado -
    Madrid,
    Aravaca,
    Osa Mayor, 70.91 143 68 56
    Con los puntos he eliminado el contenido que no necesitaría.

    Espero que me puedas ayudar.
    Muchisimas gracias por adelantado

  22. Moshe says:

    Al enviarlo me ha eliminado el codigo, pero los datos concretos serían:
    Latitud
    Longitud
    Nombre del Restaurante (ej.:Restaurante-Terraza Kira)
    Especialidad (ej.:Cocina de mercado)
    Ciudad/Distrito (ej.: Madrid, Aravaca)
    Direccion: (ej.: Osa Mayor, 70)
    Telefono: (ej.: 911436856)

    Disculpa de nuevo las molestias que te pueda ocasionar.
    Un saludo

  23. Eduardo Joruqera says:

    Hola, primero que todo gracias por lo que haces de contestar con tanta paciencia cada uno de nuestros post.
    te comento:

    Trabajo en un un medio digital de noticias y necesito hacer un landingPage que solo muestre los titulares y y cada vez que cambien, estos también cambien en el landingPage el sitio es http://www.redmaule.com – he intentado hacerlo como lo indicas pero no puede conseguir el resultado esperado,

    Serías tan amable de darme una mano con esto?
    Muchas gracias!

  24. Karin says:

    Hola, gracias por la ayuda que puedas darme, he tratado de armar con lo que hay en la página pero en este caso se complica con una url (imagendia.aspx?fed=KdSr3GFhsIl) que antecede a lo que necesito (aDilIop39o0.jpg):

    Descargar la imagen del día aquí:

    Vale aclarar que el código fuente se mueve mucho con información así que esa parte es casi lo único que se mantiene pero un día está arriba otro día abajo.

    Gracias.

  25. Juan says:

    Hola, primero felicitar tu trabajo

    Cuando intento capturar datos de otra web hay algo que no se resolver y este ejemplo me puede servir para explicarlo:

    UF :

    22.213,43

    ahora imagina que en vez de EFEBE7 es la palabra León (ojo a la tilde)

    UF :

    22.213,43

    No soy capaz de extraer información cuando existe hay una tilde o la letra ñ

    Gracias

  26. Juan says:

    tr bgcolor=”EFEBE7

    td align=”right” class=”texto2″UF : td

    td class=”texto2″ b 22.213,43 b td
    tr

    intentaba poner el primer código de esta página, lo dejo así para que se entienda

    (No soy capaz de extraer información cuando existe hay una tilde o la letra ñ)

    gracias

  27. Cristian says:

    Hola estuve intentando aplicar tus ejemplos pero no tengo éxito, tengo esta página http://www.deperu.com/celulares/ lo que sucede es que se envía un numero telefónico por método POST y la pagina devuelve si el numero es de operador CLARO O MOVISTAR; cuando hago el envío basándome en tus ejemplos solo carga la pagina con el numero pero no imprime el operador, esto es lo que tengo en mi código. Gracias.

    ‘#numero_celular’,
    “btnB” => ‘Conocer !’
    );

    $http_request = http_build_query($params);
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, “http://www.deperu.com/celulares/”);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, “Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1″);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $http_request);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    $output = curl_exec($ch);

    echo $output;

    curl_close($ch);

  28. Omar Monterrey says:

    Hola, queria saber como obtener el valor “NP” de esta pagina
    http://www.neopets.com/inventory.phtml
    Esto es lo que intento y no sale :S

    <?php
    // Example by deerme.org
    $data = file_get_contents("http://www.neopets.com/inventory.phtml&quot ;) ;

    if ( preg_match('| NP: \s+(.*?)|is’ , $data , $cap ) )
    {
    echo ” NP: “.$cap[1];
    }
    ?>

  29. deerme.org says:

    Omar

    Sucede que el sitio pide autentificación, si quieres dame alguna credencial con cual probar y te pudo dar un código de ejemplo que funcione.

    Saludos

  30. Omar Monterrey says:

    Lo olvidaba :C

    Nombre de usuario: ateismoilustrado
    Contraseña: 33213321

  31. Davis says:

    $data = file_get_contents(“http://www.geoiptool.com/es/?IP=” .$ip);
    Gracias por el tutorial amigo, mira estoy poniendo esto para obtener datos del usuario con su ip y ponerlos en mi pagina, segun yo el codigo esta bien pero no imprime nada, podrias ayudarme gracias

    <?php
    $ip=$_SERVER['REMOTE_ADDR']; //A la variable ip le asignamos la ip remota

    if ( preg_match('|Ciudad:(.*?)|is’ , $data , $cap ) )
    {
    echo “Ciudad: “.$cap[1];
    }

    ?>

  32. Davis says:

    perdon puse mal el codigo

  33. Omar Monterrey says:

    Primero debes poner $ip=****** y despues data=-*****
    Define la variable, luego usala

  34. Luis says:

    Hola que tal??

    He revisado todos los comentarios y antes que nada quiero agradecer que te tomes el tiempo para contestar a todas las preguntas (hoy dia pocos lo hacen solo por el gusto de compartir conocimiento). Tengo un problema similar al de un comentario anterior, que puedo hacer si es necesario autentificarme antes de poder acceder a los datos?? La pagina utiliza java para la autentificacion?

    Gracias nuevamente.!!

  35. deerme.org says:

    Hola Cristian, te dejo aqui el código que es capaz de consultar la compañia de un celular desde el sitio.

    <?php
    $phone = "959347173";
    
    $raw_post = "&". http_build_query(array("btnB" => "1"));
    $raw_post .= "&". http_build_query(array("txtnumero" => $phone ));
    
    // Login
    $ch = curl_init('http:// www. deperu .com/celulares/');
    curl_setopt($ch, CURLOPT_POST,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS , $raw_post );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    #curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie.txt');
    #curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookie.txt');
    $buffer = curl_exec($ch);
    
    if ( preg_match_all('|<p class="tcomentario">(.*?)</p>\s+<h3>(.*?)</h3>|is',$buffer,$cap) )
    {
            echo "The phone ".$phone." is ".$cap[1][0]." from ".$cap[2][0];
    }
    ~
    

    Recuerda corregir la url en el código (ya que esta con espacios), de todas formas aquí tienes una copia del código https://github.com/deerme/deerme.org/blob/master/php/harvest/curl-example-mobile-phone-pe.php

  36. deerme.org says:

    Hola Omar, lo primero que debes hacer es realizar el proceso de login en el sitio, guardar la cookie y luego hacer la segunda petición con la cookie generada.

    Te dejo una posible solución que imprime este valor:
    The site contain a NP: 29,935

    <?php
    /**
     * Get a value from a auth site (neopets.com)
     * This is just a example.
     *
     * @link                        http:// deerme .org/php/descargando-archivos-con-php-curl
     * @author                      deerme.org
     */
    
    // Data for the login
    $raw_post = "&". http_build_query(array("username" => " ateismoilustrado"));
    $raw_post .= "&". http_build_query(array("password" => "33213321"));
    $raw_post .= "&". http_build_query(array("destination" => "%2Finventory.phtml"));
    
    // Login
    $ch = curl_init('http:// www .neopets .com/login.phtml');
    curl_setopt($ch, CURLOPT_POST,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS , $raw_post );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
    $buffer = curl_exec($ch);
    
    // Get the NP Value
    $ch = curl_init("http:// www .neopets .com/inventory.phtml");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
    $buffer = curl_exec($ch);
    
    if ( preg_match("|<a id='npanchor' href=\"/inventory\.phtml\">(.*?)</a>|is",$buffer,$cap) )
    {
            echo "The site contain a NP: ".$cap[1];
    }
    

    Recuerda corregir la url en el código (ya que esta con espacios), de todas formas aquí tienes una copia del código https://github.com/deerme/deerme.org/blob/master/php/harvest/curl-example-auth-neopets.com.php

  37. deerme.org says:

    Hola Luis

    Efectivamente es uno de los casos mas usuales. Lo que hay que hacer es simular todos los pasos que realizas en el sitio, Siguiendo los POST/GET necesarios, además de guardar las cookie en cada paso y anexarlas en la siguiente petición.

    En el comentario anterior puedes encontrar una solución funcional a como obtener un dato del sitio neopets.com que requiere un login previo.

    Si tienes dudas, no hay problema.

    Saludos!!

  38. koke says:

    Buenas consulta si yo quiero que de mi web intruducir en valor en otra ? y luego de esa busqueda tomar los datos que necesito veo que usted los toma .

    no se si entiende mi consulta.

  39. deerme.org says:

    Hola Koke, si es posible, pero requiere un poco de experiencia. Supongamos el dominio a.com (tuyo) y b.com (donde queremos extraer el resultados), deberias seguir los sgtes pasos referenciales:

    - Desplegar un formulario de busqueda
    - Script que lea los datos del formulario y luego simule una busqueda en el dominio b.com realizando los GET y POST necesarios (usando por ejemplo php_curl) y capturar los datos resultantes.
    - Entregamos los datos capturados al cliente inicial

    Siguiendo esos pasos, ya podría lograr lo que quieres.

    Saludos!!

  40. Danny Salazar says:

    Excelentes aportes men, aunque yo implementaba otra solucíon para lo que pedía Luis, pero al final era lo mismo, extraer los datos de la registraduria por # de cedula y cree un script que los fuera ingresando directamente a una base de datos con jquery-ajax !

    Geniales tus aportes, un saludo desde la sucursal del cielo :D

  41. Jimmy says:

    Hola!! necesito una ayuda!! yo tengo un formulario que deseo llenar con unos datos de esta pagina http://www.cne.gob.ve/web/index.php, mi idea es colocar un numero de cedula en mi formulario y darle “buscar ” me consulte en esta pagina en el lado derecho, se busque y esa informacion que me trae la pagina traerla a mi formulario. existe alguna forma?? ayuda por favor

  42. Anibal says:

    Estimado
    muchas gracias por responder a todos nosotros que necesitamos de tu ayuda

    quería pedirte otro favor

    necesito tomar las 3 ultimas noticias de esta pagina http://www.redmaule.com/category/titular/
    ya que esto se va actualizando dentro del dia y necesito obtener las ultimas entradas que se van publicando

    me puedes ayudar por favor?

    muchas gracias desde ya

  43. Wilman says:

    que tal ayudeme con esto ya me tiene locoo, trate hacer con todos los metodos pero con ninguno m sale ayudeme, deseo sacar solo el nombre de ISP d esta pagina http://whatismyipaddress.com/ip/173.252.112.112 pero q pueda cambiar la ip, y solo mostrarme el ISP, x favor ayudamee gracias

  44. Daniel says:

    Hola que tal no quiero molestar pero ya no se que hacer, estoy haciendo una pagina para ciegos y tengo un error.

    quiero tomar el audio de la pagina:

    http://vozme.com/index.php?lang=es

    y lo hago de esta manera.

    $text,
    “lang”=>”es”,
    “gn”=>”ml”,
    “interface”=>”full”
    )
    );

    $opts = array(‘http’ =>
    array(
    ‘method’ => ‘POST’,
    ‘header’ => ‘Content-type: application/x-www-form-urlencoded’,
    ‘content’ => $postdata
    )
    );

    $context = stream_context_create($opts);

    if ($htmldocwithlink = file_get_contents(“http://vozme.com/text2voice.php”, false, $context))
    {
    $htmldoc = new DOMDocument();
    $htmldoc->loadHTML($htmldocwithlink);
    $soundfilelink=$htmldoc->getElementById(‘player’)->getElementsByTagName(‘a’)->item(0)->getAttribute(‘href’);
    $soundfile=file_get_contents($soundfilelink);
    file_put_contents($filename,$soundfile);
    echo (‘

    Saved mp3 uri : ‘.$_SERVER['SERVER_NAME'].’/webtts/’.$filename.’
    );
    }
    else echo(“Audio could not be saved”);
    }
    ?>

    Y me funciona perfecto pero cuando paso los 100 caracteres no genera el audio, implemente tu método de captura pero no se porque no guarda el audio, agradezco tu ayuda gracias saludos.

  45. Gines says:

    buenas yo estoy intentando sacar los resultados de la loteria, euromillones, primitiva, etc de la siguientes web http://www.loteriasyapuestas.es/es/buscador?type=results y tambien quiero poder extraer los listados de premios segun los aciertos. He visto esta pagina pero para que me muestre los premios tengo que introducir manualmente mis numeros y eso no se como se podria hacer automaticamente con PHP (por ejemplo para bonoloto seria esta pagina http://www.loteriasyapuestas.es/es/bonoloto?drawId=848801154)

    ¿podeis ayudarme?, muchisimas gracias

  46. Daniel says:

    Hola, me gustaría poder obtener los valores en tiempo real de distintas divisas de la siguiente web http://www.fxstreet.es/cotizaciones/divisas-tiempo-real/?id=majors%3beurusd%3busdjpy%3bgbpusd%3busdchf%3baudusd%3busdcad%3bnzdusd%3busdcny%3busdhkd%3busdsgd%3busdnok%3busddkk%3busdsek%3beurnok%3beurdkk%3beursek%3beurchf%3beurjpy%3beurgbp%3beuraud%3bgbpchf%3bgbpjpy%3bgbpcad%3bgbpaud%3baudjpy%3bcadjpy%3bchfjpy%3bnzdjpy%3baudcad%3baudchf%3baudsgd
    Estoy interesado en obtener el valor del campo “Ultimo”, pero no quiero mostrar ese valor, sino necsito almacenarlo en un fichero para ir creando una base de datos automáticamente. Supongo que debería haber un script que se ejecute periódicamente cada x segundos y que vaya añadiendo muestras al fichero.
    ¿Podríais ayudarme?
    Muchas gracias de antemano

  47. jose says:

    Hola quisiera capturar los datos dela bolsa de santiago, http://www.bolchile.cl/AccionesPorPeriodo?mostrar=MERCADO_HOY&menu=EST_MERCACC

    las empresas y sus valores en php me podrian ayudar.
    les estare muy agradecido. .

    hasta pronto

  48. jose says:

    hola estoy tratando de sacar los precios de las acciones de la bolsa de santiago en php
    http://www.bolsadesantiago.com/Theme/preciosacciones.aspx
    soy nuevo en esto tengo conocimiento en php pero esto me supera.

    gracias

  49. Alex says:

    Buenos días, antes que nada muchas gracias por tu ayuda, es muy valorable lo que haces; en mi caso necesito tomar las cotizaciones de la moneda desde esta web: http://www.brou.com.uy/web/guest/home y no consigo hacerlo, intento traer el div entero pero me trae otros datos, desde ya muchas gracias!!!

  50. Mirko says:

    Estimado, exelente tus aportes, Lo replique con el mismo sitio y funciona una maravilla. Quiero replicar con el sitio del wundergroung, capturando valores de temperatura, pero no me sale nada. Te pido por favor si me lo puedes revisar te lo agradeceria mucho.

    Este es el codigo

    <?php
    // Example by deerme.org
    $data = file_get_contents("http://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=ICRDOBAC12/&quot ;) ;

    if ( preg_match('|Temperatura:\s+(.*?)|is’ , $data , $cap ) )
    {
    echo “Temperatura”.$cap[1];
    }

  51. DAMICHEL says:

    AQUI UN DESAFIO Q NO LOGRO RESOLVER
    Necesito capturar esta lista de torneos de ajedrez q se muestran en http://www.chess-results.com/SpielerSuche.aspx?lan=2 solo enviandole las variables por post desde ella misma. Probé el codigo usual para esto y no me funcionó: Mi codigo fué:
    ‘, $codigo);
    $codigo2 = between(‘name=”__EVENTVALIDATION” id=”__EVENTVALIDATION” value=”‘, ‘” />’, $codigo);

    // _ctl0_P1_txt_FED es la federacion y _ctl0_P1_txt_von_tag es la fecha y estoy probando con diciembre 2013
    $data = array(‘_ctl0_P1_txt_FED’ => ‘cub’,
    ‘_ctl0_P1_txt_von_tag’ => ’201312′,
    ‘__VIEWSTATE’ => ‘$codigo1′,
    ‘__EVENTVALIDATION’ => ‘$codigo2′,
    );

    $options = array(‘http’ => array(
    ‘method’ => ‘POST’,
    ‘content’ => http_build_query($data)
    ));
    $context = stream_context_create($options);

    $page = file_get_contents($url, true, $context);

    echo $page;
    ?>

    SOLO NECESITO el HTML de la web en una cadena

  52. Aldo says:

    Hola, muy buen trabajo, pero se me complicó al querer sacar los siguientes datos … paso el HTML y el preg_match

    Santa Fe
    Paraná
    2,82
    -0,03

    2,85
    5,30
    5,70

    Lo que necesito es sacar el valor 2,82 (que sería la altura del rio parana en la ciudad de santa fe)

    el codigo que tengo es el siguiente

    $data = file_get_contents(“ht tp://fich.unl.edu.ar/cim/alturas-parana/”);
    if ( preg_match(‘|Santa Fe Paraná (.*)|is’ , $data , $cap ) )
    {
    //$datos_rio = $cap[0];
    echo trim($cap[1]);
    //print_r($cap[0][1]);
    }

    pf: puse un espacio en la URL para que lo tóme el wordpress

    Salu2 y gracias !!!!

  53. John German Velásquez Torres says:

    Buen día de verdad me le quito el sombrero…
    He entendido todo y lo he probado y me funciona cuando conozco la URL y los datos que se pasan para obtener la respuesta.
    Pero (siempre hay uno) tengo que hacer una consulta a la pagina: rues.org.co/ para hacer una verificación sistematizada de las empresas que se registran en nuestro portal por Número de identificación (NIT), esta consulta es por ajax y no se como hacer (el ejemplo de arriba de ajax ya no esta disponible porque la pagina la cerraron.

    Mil gracias de antemano

  54. clau says:

    Estimado, he tratado de probar con sus ejemplos sin resultados positivos, necesito extraer toda la informacion desplegada en esta pagina

    http://www.nexchannel.cl/Nex/noticias/noticia_pinternet.php?nota=10278636

    De ante mano muchas gracias por cualquier aporte

  55. Felipe says:

    hola muy bueno amigo! logre sacar información pero tengo un problema, ¿como puedo sacar mas de 1 dato? ejemplo tengo esto en la pagina
    PRIMER TITULO y despues tengo mas abajo lo mismo

    SEGUNDO TITULO

    ¿como puedo obtener los 2 registros (o mas)? espero que me puedas ayudar te lo agradezco mucho gracias!

  56. Vanesa says:

    Como puedo ver el código de un archivo php de una pagina web o descárgamelo a mi ordenador para analizarlo? muchas gracias

  57. José Antonio says:

    Buenas tardes, ¿podrías ayudarme a mi?, necesito hacer esto

    Extracción de datos de colegio oficial médicos barcelona

    Buenos días, Necesitaría sacar de unas tablas con id determinado de cada tabla la información que hay en cada celda parta luego guardarla en una base de datos mysql, el ejemplo de las tablas de las que queremos recuperar la información sería la siguiente:

    Nom:APELLIDO APELLIDO, NOMBRE NOMBRE

    Número:123456789

     EXERCENT

    AL•LERGOLOGIA

    MEDICINA INTERNA

    AdreçaCPComarcaPoblacióTelèfonCorreu electrònic

    PG.DE GRACIA, 1, 1-208007
    BARCELONES

    BARCELONA
    9312345678

    DOS DE MAIG, 1-3, BXS-1 08912
    BARCELONES

    BADALONA
    9312345678

    Lo que tengo que extraer de la primera tabla, denominada id=”nombre”, sería el APELLIDO APELLIDO, NOMBRE NOMBRE completo y el número que aparece 123456789 y el dato que aparece EXERCENT, En esta tabla sólo existirá un registro, de nombre, un registro del número y un registro de estado.

    Lo que necesito recuperar de la segunda tabla id=”especialidad”, es la especialidad, aquí puede que haya un registro o varios, como es este el caso, que hay dos registro, uno de que AL•LERGOLOGIA, y otro que es MEDICINA INTERNA, pero pueden haber más, como máximo cuatro o cinto.

    Lo que tengo que extraer de la tercera tabla que es id=”dirección” es el nombre de la calle, el cod postal, la población, la provincia, el teléfono, y ya está la imagen del siguiente td no la necesito. En este caso al igual que en el anterior, existe la posibilidad de que hayan dos filas o tres filas de datos, en la mayoría sólo tendrán una única fila.

    He intentado hacer un bucle con foreach para recorrer todas las celdas y sacar los datos de las mismas, y pasar los datos a un formulario para acabar de rellenar el dato correo electrónico que es un dato que tenemos que introducir a mano, pero no sé que hacer cuando existen varias direcciones y varias especialidades.

    Podrías ayudarme?

  58. Jesus Romero says:

    Lo que necesito yo es sacar informacion DEL TIPO DE CAMBIO de la web:
    http://www.cuantoestaeldolar.pe/

    Interbancario
    SUNAT-SBS
    COMPRA Y VENTA
    ___________
    Paralelo
    EN LA CALLE
    COMPRA Y VENTA

  59. Eduardo says:

    Saludos,

    primero quiero agradecerte por todo lo que has aportado y enseñado se valora mucho.

    He seguido muy atentamente todos los comentarios y ejemplos que están en la pagina, pero tengo una consulta sobre el código que le diste a jose

    loadHTML($source);
    $trs = $dom->getElementsByTagName(“tr”);
    $record = array();
    foreach ( $trs as $tr )
    {
    // Cada TD
    $title = trim($tr->getElementsByTagName(“td”)->item(0)->nodeValue);
    $value = trim($tr->getElementsByTagName(“td”)->item(1)->nodeValue);
    if ( $title == “Actual Time” )
    $record["actual_time"] = $value;
    if ( $title == “Civil Twilight” )
    $record["civil_twilight"] = $value;
    if ( $title == “Nautical Twilight” )
    $record["nautical_twilight"] = $value;
    if ( $title == “Astronomical Twilight” )
    $record["astronomical_twilight"] = $value;
    if ( $title == “Moon” )
    $record["astronomical_twilight"] = $value;
    }

    print_r($record);

    ya que al momento de preguntar en el if solo me muestra los resultados de 1 sola palabra me explico solo me muetra el array de if ( $title == “Moon” ) y no de if ( $title == “Nautical Twilight” ) . He tratado de investigar y probar diversas cosas pero aun no me da resultado.

    Ademas me gustaría saber si se puede que si no encuentra algo en el if me de algún resultado como por ejemplo no se encuentra ya que si le pongo un else tampoco funciona.

    Ojala me puedas ayudar y de ante mano muchas gracias.

  60. Eduardo says:

    Disculpa se me había olvidado poner la pagina con la cual estoy haciendo mi script es esta

    http://www.tibia.com/community/subtopic=worlds&world=Aldora

    mi idea es buscar si algunos nombres se encuentran o no en la lista.

    Gracias

  61. Salvador says:

    Saludos , quize tratar de sacar información del clima de esta pagina http://www.senamhi.gob.pe/main_prono_.php? pero me sale error en mi localhost.

    <?php

    $source = file_get_contents("http://http://www.senamhi.gob.pe/main_prono_.php?&quot ;) ;

    if(preg_match('|(.*?)\s+(.*?)|is’,$source,$cap))
    {
    echo $cap[1];
    }

    Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Host desconocido. in C:\wamp\www\ejemplo\peru.php on line 3

    Warning: file_get_contents(http://http://www.senamhi.gob.pe/main_prono_.php?) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Host desconocido. in C:\wamp\www\ejemplo\peru.php on line 3

  62. DARWIN says:

    ola a todos eme pueden ayudar en mi intento por capturar el tipo de cambio que se muestra en una web mi codigo es el siguiente lo tome del post pero no funciona talvez lo estoy usando de manera incorrecta.

    $data = file_get_contents(“http://www.preciodolar.com/precio-del-dolar-en-peru”);

    if ( preg_match(‘|(.*?)|is’ , $data , $capt ) )
    {
    echo $capt[1];
    }
    de antemno muchas gracias!!

  63. Francesco says:

    Estuve tratando de muchas maneras pero no me arroja ningún resultado, necesito sacar el número de CW de http://oap-ar.nextelinternational.com:8080/waits_cc.php el codigo que estuve utilizando fue:

    <?php

    $data = file_get_contents("http://oap-ar.nextelinternational.com:8080/waits_cc.php&quot ;) ;

    if (preg_match('|CW: (.*?)|is’, $data, $cap )){

    echo ‘CW: ‘ . $cap[1];
    }

    ?>

    Agradecería mucho si podés ayudarme.

  64. Darwin Huaman says:

    hola, me podrias ayudar, como puedo enviar form data por pos, a una pagina y recibir los datos, esta es la pagina
    http://www.sunarp.gob.pe/ConsultaVehicular/

  65. MICHELL OTERO says:

    COMO HAGO PARA CAPTURAR LOS DATOS DE ESTAS PAGINAS Y LLEVARLOS A MI WEB http://www.livescore.in/, http://www.marcadores.com/

  66. MICHELL OTERO says:

    COMO HAGO PARA CAPTURAR LOS DATOS DE ESTAS PAGINAS http://WWW.BET365.COM Y LLEVARLOS A MI WEB http://www.livescore.in/, http://www.marcadores.com/ ASI COM HACEN ESTAS PAGINAS

  67. gustavo says:

    hola yo estoy queriendo capturar datos de un contador pero no aparece como te aparece a ti, sino como una funcion segun entiendo yo.
    00:00:28

    Como haria para extraer el dato y que se realice una funcion cuando el contador llegue a cero o a 00.00.01

  68. gustavo says:

    escribeme necesitaria un presupuesto.

  69. sergio says:

    Que tal como haria para meter el codigo en una pagina mia html?
    Estoy con el Dreanweaver y puse asi como tal lo ponen y nada

    Me lo podrian armar para ya sacar bien despues los datos?
    Lo estoy haciendo para una aplicacion que estoy armando

    http://www.haysubtes.com/

  70. maria says:

    Buenas tardes me gustaría saber si me puedes ayudar para obtener la información de la siguiente pagina http://www.banxico.org.mx/SieInternet/consultarDirectorioInternetAction.do?accion=consultarCuadro&idCuadro=CF101&sector=18&locale=es

    logro sacar los dos datos de las dos ultimas fechas pero el del primero no logro obtenerlo

  71. Victor says:

    Hola me gustaria sacar el valor de la UF de esta pagina
    http://www.bcentral.cl/index.asp
    le puse esto:
    $source = file_get_contents(“http://www.bcentral.cl/index.asp”);

    if ( preg_match(‘|UF(.*?)|is’,$source,$cap) )
    {
    echo $cap[1];
    }

    pero no me funciono podrias ayudarme?

  72. deerme.org says:

    Hola Victor, la pagina del banco central ha cambiado un poco, a si que debes ajustar la expresión regular, según lo que aparece ahora, este expresión debería funcionar.

    $source = file_get_contents("http ://www.bcentral.cl/index.asp");
    if ( preg_match("|<td>UF</td>\s+<td>(.*?)</td>|is",$source,$cap) )
    {
            echo $cap[1];
    }
    

    Saludos

    PD: Elimina el espacio en la url :P

  73. Pedro says:

    Lo primero gracias por tu tiempo y tus ejemplos para que aprendamos los que no sabemos.

    Podrias hacer un ejemplo de esto en node.js conectando con proxi y con login extracion de cookies gracias.

  74. Jorge says:

    Hola Daeme:
    Impresionante tu capacidad de trabajar el código.
    Estaba preguntandome si es posible que me ayudes con esta pagina:

    http://consultawebvehiculos.carabineros.cl/

    Necesito un codigo en php que simplemente me indique si una patente esta encargada o no por robo.
    Ej: hh 11 22 o WW 83 27

    Gracias por tu ayuda.

  75. Jorge says:

    Hola nuevamente:
    Me gustaría saber si es posible extraer la información de un vehiculo desde la pagina de consorcio.
    Ellos en su pagina de compra de seguro obligatorio SOAP, luego de poner un rut valido, permiten poner una patente y luego de ello despliegan datos del vehiculo, los cuales necesito capturar..
    cualquier idea es bienvenida.
    muchas gracias.

    http://www.consorcio.cl/soap/adquiera_soap.asp

  76. Paco Núñez says:

    Hola. Quiero sacar un contenido de una web para insertarlo en la mía. En este caso, lo que quiero es obtener el contenido del id=”lh_caja_horasauxiliares” de esta URL http://www.eltestigofiel.org/oracion/liturgia.php pero no me aclaro. ¿Podrías ayudarme, por favor?
    Muchas gracias

  77. Moshe says:

    Hola, buenos días.
    Necesito extraer datos de esta url: http://11870.com/k/teatros/es/es/valencia?p=1&o=0&v=list
    ¿Me podrías ayudar?

  78. Enrique says:

    Hola, me ha gustado mucho tu blog.
    Yo estoy intentando sacar la información de el titulo original, año y director.
    http://www.filmaffinity.com/es/film352576.html
    pero no lo consiguo, esta primera línea ya me da error
    $source = file_get_contents(‘http://www.filmaffinity.com/es/film352576.html‘);

    me podrías ayudar?

    En java se podría conseguir en vez de utilizar php? como sería el código?

    Saludos y gracias por adelantado.
    Enrique.

  79. fernando says:

    hey necesito ayuda quiero extraer el contenido imagen de esta web de noticias y q publique el post en mi wp
    http://maduradas.com si puedes ayudame

  80. Armando says:

    Saludos gente, Deerme.org, e visto los ejemplos de tus codigos, y nesecito ver como lo harias para optener los datos del rss de la pagina http://www.cubadebate.cu/feed, te lo agradeceria hermano, muchas gracias de antemano……..

  81. Marcelo says:

    Un saludo pude ver todas respuestas y estan geniales a mi me llego realizar eso tambien, no se si me puedes ayudar con esta pagina.

    https://www.sicoes.gob.bo/general/frames.php?direccion=../contrat/procesos.php

    quisiera mandarle en entidad “AGENCIA ESTATAL DE VIVIENDA”

    te agradeceria mucho tu ayuda..

  82. gicu says:

    Hola necesito sacar el numero salido en esta pagina

    http://www.juegosonce.es/wmx/dicadi/pub/premEstadistic/detalleEscrutiniocupon.cfm?fecha=20141116&tiposorteo=D

    $fra=”http://www.juegosonce.es/wmx/dicadi/pub/premEstadistic/detalleEscrutiniocupon.cfm?fecha=”.$fe.”&tiposorteo=”.$di;
    $source = file_get_contents($fra);
    //echo $source;
    if ( preg_match(“|\s+(.*?)|is”,$source,$cap) )
    {
    echo $cap[1];
    }
    else
    {
    echo “no”:
    }

    no me sale…

  83. Camilo Ortiz says:

    Si deseo obtener un dato que se actualiza, como una especie de reloj, como lo haría? envío la URL https://gogolclub.com/pruebasapuestas/index_reloj.html

  84. romeo says:

    hola doc. una colsula se puede cambiar varias veces el file_get_contents(“prueba”);

    que consulte ese dado con un valor de la tabla de BD.

    ejemplo tengo una lista donde se muestra urls

    que al consulta pagina id= 01
    se replique el campo “url” al codigo “file_get_contents(“prueba”);”

    • Luifer says:

      Luifer

      Hola Dios te bendiga.

      Estoy tratan de estraer los siguientes datos de una pagina web de una impresora como son el contador y el porcentaje ahi te dejo los links, para que por favor me ayudes con el codigo php y la verdad no tengo conocimiento de php, como se ejecuta el codigo. Actualmente lo hago con consultas actualizables de excel 2013 con el complemento power query pero se demora mucho y me bloquea el excel y aveces necesito utilizar otros archivos y se demora mucho
      pero me ahora me acuerdo que no te puedo dejar los links, mejor te paso el codigo html para que por favor me ayudes:

      codigo del porcentaje:

      10)
      document.write(“ ”)
      else if(tonerLife > 0)
      document.write(“ ”)
      else
      document.write(“ ”)
      //–>
       
      Tóner:

      Listo

      75)
      document.write(“% “)
      else if(tonerLife > 50)
      document.write(“% “)
      else if(tonerLife > 25)
      document.write(“% “)
      else if(tonerLife > 15)
      document.write(“% “)
      else if(tonerLife > 0)
      document.write(“% “)
      else
      document.write(“% “)
      }
      //–>
      38%

      el numero ha extraer es
      38%

  85. romeo says:

    revisando los otros comentarios halle la solución

    gracias por la información que brindas

  86. memv says:

    Hola, muy buena tu publicación, pero me gustaria saber como obtener los datos de un formulario que tengo en html ( el cual fue exportado desde otro sitio).

    Tengo esto :

    $data = file_get_contents(“C:\\emnope13.HTM”);

    if(preg_match(‘|(?:(.+?)?)|is’ , $data , $cap ))
    {
    print_r($cap);
    }

    Esto me muestra lo que quiero pero una sola vez, y necesito que me muestre un arreglo completo. como puedo hacerlo?

  87. deerme.org says:

    Hola MemV

    Disculpa por responder tarde xD, tal vez ya lo solucionaste, de todas formas, es por el uso de la función preg_match, que solo trabaja con la primera coincidencia.

    En el caso que quieras trabajar con todas las coincidencias, debes usar preg_match_all , luego analiza la salida ($cap) con print_r para que puedas ver el contenido y analices como vas a recorrer el arreglo.

    Saludos

  88. JhonP says:

    Muy interesante la información que ha publicado, algo así es lo que realmente yo necesito, sin embargo no logro entender muy bien la captura de la info para mi caso.

    Quisiera abusar de su gentileza y pedirle el favor si es posible y me explique como capturo ciertos datos de este link: http://www.tutiempo.net/tiempo/Neiva_Benito_Salas/SKNV.htm

    La idea es llevar a mi sitio que construyo en HTML5 la información actual de viento, presión, temperatura. Esta información esta en una franja de color violeta.

    Gracias por su ayuda.

  89. Ernesto says:

    Hola, queria saber como podría obtener todos los valores de esta pagina http://www.comuniazo.es y exportarlos a otra web
    Esto es lo que intento y no sale :S

  90. Gabriel says:

    Gracias por compartir tus conocimientos y experiencias, con otro como yo, que recien se estan iniciando en este mundo de la programación.
    Te quería consultar como puedo obtener datos de la siguiente url : “http://www.paginasamarillas.com.ar/”.
    Desde ya muchas gracias.

  91. jonathan says:

    hola amigo estoy creando una pagina de deportes y quisiera colocar los resultados de la barra izquierda que aparecen en esta web “http://mlb.mlb.com/es/index.jsp?c_id=mlb/” en mi pagina como podria hacer de antemano gracias y te felicito por tus aportes

  92. luis says:

    Gracias amigo me funciono , pero como podria hacer un robot que rastree toda una web y copie el contenido ?

  93. deerme.org says:

    Hola Luis

    Lo que quieres hacer se llamar generalmente web crawler y en general, lo que hace es algo repetitivo como lo siguiente:

    - Visitar un sitio y extraer sus enlaces
    - Visitar cada enlace para extraer contenido y si encuentra algún enlace nuevo, lo agrega a la lista
    - Repitir hasta el infinito xDD

    Hace varios años atrás, implemente un par de webcrawler, en PHP y Python, con el objetio de visitar enlaces, extraer palabras, de cada palabra calcular el hash md5 y sha1, y continuar con sus enlaces xD. Fue un proyecto interesante, pero el bot corriendo un par de días me genero demasiada información xDD.

    Saludos

  94. zombyk says:

    Hola he seguido tu code pero no puedo acceder al dato
    http://www.sismologia.cl
    $source = file_get_contents(“http://www.sismologia.cl/links/home.html”);

    if ( preg_match(‘|(.*?)41 km al S de Mina Collahuasi3.5 Ml|is’,$source,$cap) )
    {
    echo $cap[1];

    }

    echo “si”;

    ?>

    • zombyk says:

      me respondí solo Gracias. me ayudo mucho tu post!
      $source = file_get_contents(“http://www.sismologia.cl/links/tabla.html”);

      if ( preg_match(‘|(.*?)(.*?)(.*?)|is’,$source,$cap) )
      {
      echo “Fecha: “.$cap[2];
      echo “”;
      echo “Lugar: “.$cap[3];
      echo “”;
      echo “Intencidad: “.$cap[4];
      echo “”;
      mas(“http://www.sismologia.cl”.$cap[1]);
      }

      function mas($url){
      //echo $url;
      $source = file_get_contents($url);

      if ( preg_match(‘|Magnitud(.*?)|is’,$source,$cap) )
      {
      echo “Magnitud :”;
      echo $cap[2];
      echo “”;
      }
      if ( preg_match(‘|Profundidad(.*?)|is’,$source,$cap) )
      {
      echo “Profundidad: “;
      echo $cap[2];
      echo “”;
      }
      }

  95. milagros says:

    hola amigo,
    quisiera saber como puedo sacar el precio de la compra y venta del dolar.
    en la categoria de INTERBANK,
    he intentado hacerlo y me genera pero con errores.

    loadHTML($source);
    $xpath = new DOMXPath( $html );
    $result = array();

    $trs = $html->getElementsByTagName(“tr”);
    foreach ( $trs as $tr )
    {
    $title = $tr->getElementsByTagName(“td”)->item(0)->nodeValue;
    $value = $tr->getElementsByTagName(“td”)->item(1)->nodeValue;

    echo $title . “\t” . $value.”\n”;
    $result[$title] = $value;
    }
    ?>

    y quisiera saber como generar la compra y venta del dolar de INTERBANK, gracias

  96. Javier says:

    Hola men!, sabes que me he estado cabeceando estos dias para poder captar el valor del dolar observado del banco central de esta web (http://si3.bcentral.cl/Indicadoressiete/secure/Serie.aspx?gcode=PRE_TCO&param=RABmAFYAWQB3AGYAaQBuAEkALQAzADUAbgBNAGgAaAAkADUAVwBQAC4AbQBYADAARwBOAGUAYwBjACMAQQBaAHAARgBhAGcAUABTAGUAdwA1ADQAMQA0AE0AawBLAF8AdQBDACQASABzAG0AXwA2AHQAawBvAFcAZwBKAEwAegBzAF8AbgBMAHIAYgBDAC4ARQA3AFUAVwB4AFIAWQBhAEEAOABkAHkAZwAxAEEARAA=)

    El problema es que necesito meter ese dato en un php:

    function khipu_get_new_payment($email, $bankId, $value) {
    $receiver_id = RECEIVER_ID;
    $secret = SECRET;

    $pre = 'A cuenta';
    $tipo = 'USD SKRILL';
    $subject = $value." ".$tipo;
    $body = $pre." ".$email;
    $bank_id = $bankId;
    ->aqui $amount = round($value*1.05*'''(Valor del Dolar)''' , 0 , PHP_ROUND_HALF_UP);
    $payer_email = $email;
    $notify_url = NOTIFY_URL;
    $return_url = RETURN_URL;
    $cancel_url = '';
    $picture_url = '';
    $transaction_id = '';
    $custom = $email;

    Onda necesito captar el valor del dolar observado y multiplicarlo por 1,0199

    Ojala me puedas echar una manito.

  97. osboom says:

    Como Hago para capturar los datos que me devuelve esta paguina http://siri.procuraduria.gov.co:8086/CertWEB/Certificado.aspx?tpo=1

  98. OSBOOM says:

    En el día de ayer monte un texto y hoy no lo veo. lo que coloque como hacia para capturar la información de siri.procuraduria.gov.co:8086/CertWEB/Certificado.aspx?tpo=1

  99. OSBOOM says:

    metiendome en este mundo y maravilloso he tomado un ejemplo de los de arriba el cual es este codigo
    loadHTML($source);
    $xpath = new DOMXPath( $html );
    $result = array();
    // Cada TR
    $trs = $html->getElementsByTagName(“tr”);
    foreach ( $trs as $tr )
    {
    // Cada TD
    $title = $tr->getElementsByTagName(“td”)->item(0)->nodeValue;
    $value = $tr->getElementsByTagName(“td”)->item(1)->nodeValue;

    echo $title . “\t” . $value.”\n”;
    $result[$title] = $value;
    }
    print_r($result);

    y no sale ningún erro pero me muestra solo
    Array ( )

    y no me sale lo que muestra la pagina en estos momentos

  100. osboom says:

    Bueno dandole al codigo he hecho esto
    loadHTML($source);
    $xpath = new DOMXPath( $html );
    $result = array();
    // Cada TR
    $trs = $html->getElementsByTagName(‘div’);
    foreach ( $trs as $tr )
    {
    // Cada TD
    $title = $tr->getElementsByTagName(“strong”)->item(0)->nodeValue;
    // $value = $tr->getElementsByTagName(“strong”)->item(1)->nodeValue;

    echo $title . “\t” .”\n”;
    $result[$title] = $value;
    }
    //print_r($result);

    y me trae como 5 veces una información que vota la pagina
    me sale lo siguiente

    La información se encuentra en actualización. Por favor intente más tarde. La información se encuentra en actualización. Por favor intente más tarde. La información se encuentra en actualización. Por favor intente más tarde. REGISTRADURÍA NACIONAL DEL ESTADO CIVIL

    la idea que solo me mostrara 1 sola vez esto La información se encuentra en actualización. Por favor intente más tarde

    y como esta como cerrada momentaneamente esa pagina
    necesito hacerlo con

    http://siri.procuraduria.gov.co:8086/CertWEB/Certificado.aspx?tpo=1

    que ademas tiene otro grado de complejidad que no se como hacerlo y es un capcha

    necesito ayuda

  101. deerme.org says:

    Hola Osboom

    El problema que tienes es complejo, debido a que tienes que resolver un captcha, el cual fue diseñado para diferenciar entre la acción de una persona o un programa.

    En la red puedes encontrar ciertas vías de solución, sin embargo, requieren dedicar tiempo a analisis de imagen por computadora, incluso a veces manejo de redes neuronales, etc. Y eso por cada “tipo” de captcha que quieres resolver.

    Aquí puedes encontrar un demo de como resolver un captcha usando OpenCV, Matplop y Python (https://www.youtube.com/watch?v=KESG8I9C3oA) sin embargo está en japones o chino xD. De todas formas, en la red puedes encontrar algunas pautas.

    La otra alternativa sería utilizar los servicios que resuelven captcha, pero son de pagos.

    Saludos!

  102. OSBOOM says:

    gracias voy a intentarlo haber como me va. luego te aviso

  103. CristianB says:

    Hola deerme.org Necesito de tu ayuda, lei la mayoria de los post y encontre lo que busco, deseo capturar el valor de la UF de esta página http://indicadoresdeldia.cl/valor-uf-hoy.html … logro capturarlo y mostrarlo, pero ademas quiero utilizar el valor, sumarlo, multiplicarlo etc.
    Si puedes ayudarme a convertirlo de string a int… te lo agradecería.

  104. Jaume says:

    Hola,

    gran información!
    Sabes si es posible obtener información de los partidos en bet365.es?
    Por lo que puedo ver creo que está echa con Flash

    Gracias!

  105. Daniel says:

    Hola estimado deerme.org antes que nada te fecicito y agradezco por tu aporte y gentil ayuda, quiisiera ver si por favor tengas un tiempito y me ayudas a obtener los datos de esta pagina http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?accion=consPorRuc&nroRuc=20480878257&codigo=DAWN.

  106. Carlos says:

    Hola, excelente información! pero tengo problemas para usarlo en esta página http://www.ncbi.nlm.nih.gov/nuccore/336185462?report=fasta porque muestra con AJAX la información de la secuencia de nucleótidos y esa es exactamente la parte que me interesa!! ojalá puedas ayudarme, muchas gracias!!

  107. Lui says:

    Hola Buen dia amigo, me podrias ayudar en esto, soy nuevo usando php, deseo ingresar mi numero de dni y scar informacion de la siguiente pagina:
    http://slcp.mtc.gob.pe/
    Ejemplo dni es 18197331 y luego recuperar información como puntos acumulados.

    Gracias por tu apoyo.
    Saludos.
    Luis

  108. rolando says:

    deerme, te felicito por tus conocimientos y paciencia para ayudar a resolver codigo, espero que me puedas ayudar con una solucion o indicar en que estoy fallando, el caso es que desde mi pagina debo introducir un numero de indetidad (ejm: 0703292250) ir a la pagina http://www.mdi.gob.ec/minterior1/antecedentes/verifica.php, que se pulse el boton buscar y poder tomar los datos a mi pagina, estoy intentando con curl, llevo dias y no puedo resolver….
    Saludos

    • deerme.org says:

      Rolando, una forma para analizar el comportamiento de un sitio, es analizando el trafico HTTP, hoy en día, Firefox y Chrome traen unas herramientas nativas. En este caso, analizando la petición que hace el sitio al enviar el formulario, veemos que envia un par de parametros por POST y el sitio responde en formato json, por lo tanto, es sencillo interpretar la salida. El código sería el sgte (sin espacios en la dirección).

      <?php
      
      $fields = array(
              "tipo" => "getDataWsPn",
              "ci" => "0703292250",
              "tp" => "C",
      );
      
      $raw_fields = http_build_query($fields);
      // Make the POST
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
      curl_setopt($ch,CURLOPT_URL, "http : / / www .mdi.gob.ec/minterior1/antecedentes/data.php");
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
      curl_setopt($ch,CURLOPT_POSTFIELDS, $raw_fields);
      //execute post
      $results = curl_exec($ch);
      //close connection
      curl_close($ch);
      
      $raw_json = $results;
      $result = json_decode( $raw_json );
      echo $raw_json;
      print_r($result);
      

      Saludos

  109. Luis says:

    Hola Buen dia amigo, me podrias ayudar en esto, soy nuevo usando php, deseo ingresar mi numero de dni y scar informacion de la siguiente pagina:
    http://slcp.mtc.gob.pe/
    Ejemplo dni es 18197331 y luego recuperar información como puntos acumulados.
    Gracias por tu apoyo.
    Saludos.

  110. rolando says:

    Deerme, maestro muchas gracias, era lo que necesitaba

  111. Arnaldo says:

    Hola manito
    tengo inconvenientes a la hora de copiar los datos de esta web
    http://siri.procuraduria.gov.co:8086/CertWEB/Certificado.aspx?tpo=1

    le envio parametros via Post y no los acepta

    como le aria en este caso ??

  112. Arnaldo says:

    a lo mejor me regalas una idea o un proceso que debo seguir para llegar a tal objetivo, leyendo por tu web me encuentro que tengo que resolver el captcha de dicha webhttp://siri.procuraduria.gov.co:8086/CertWEB/Certificado.aspx?tpo=1, mi pregunta es como enviaria los datos via POST a la web ya que su formulario lo envia via post ???

  113. joseg says:

    Hola OSBOOM, la solución que buscas yo la tengo pero no funciona porque la url ha cambiado en su estructura, yambien estoy realizando el mismo proyecto, podemos compartir cocimientos

  114. Jonas says:

    Hola buenos dias, quisiera obetener el contenido del tipo de cambio de este sitio http://www.bc.gob.cu/Espanol/tipo_cambio_METROPOLITANO.asp , mi enteresa sobre todo la tabla del centro. Gracias.

  115. william says:

    Saben de alguna página que me permita extraer noticias? Por favor

  116. EBERT says:

    ME AYUDAN UIERO EXTRAER LOS DATOS DE LA RENIEC PERU https://cel.reniec.gob.pe/valreg/valreg.do SOLO NOMBRES Y APELLIDOS POR MEDIO DE UN FORMULARIO EXTERNO, ME AYUDAN.

  117. Sebastian says:

    amigo necesito ayuda urgente, es para un trabajo de grado y me exigen que saque unos datos de una pagina https://www.runt.com.co/consultaCiudadana/#/consultaVehiculo
    pues me iba bien con las paginas que los datos se les pasaban por el metodo GET pero por el otro no entiendo muy bien, a demás, tiene un captcha pero eso no importa que lo resuelva el usuario.
    en realidad lo que necesito es que en un formulario ingrese el nuemro de cedula y la placa del veiculo y me valide los datos de esa pagina
    de antemano gracias por colaborar a todo el que puedes

  118. cesar says:

    Hola deerme excelente informacion tengo una pregunta una vez se ven los datos como los puedo guardar en una base de datos agradezco tu ayuda.

  119. Oscar Galvez says:

    Necesito que mi pagina web se redireccione automáticamente cuando se hace una transmision en vivo y cuando no vaya a la web que almacena los videos, cabe destacar que uso sopcast y que en http://www.sopcast.org/chlist.xml cuando estoy transmitiendo aparecen los datos de mi canal y desaparecen al bajar la transmision, entonces antes de cargar un index debe buscar esto sop://151.80.76.190:3912/259248 en la web antes mencionada si lo encuentra enviarme a la web “A” donde esta el embed del sopcast sino enviarme a la web “B” donde estan los videos grabados antes….
    Me puedes ayudar por favor, desde ya muchas gracias

  120. Roberto says:

    Holas, excelente, muy bueno el aporte, disculpen soy nuevo en esto, he probado con (file_get_contents) y me he dado cuenta que en algunos sitios si funciona y en otros no muestra nada de nada. Me pueden ayudar por favor, Este es mi sencillo codigo:

    $ver = file_get_contents(‘http : / / whatismyipaddress.com/’);
    echo$ver; y gracias por la atención prestada :)

  121. Alberto says:

    Hola,
    Querría saber si puedo capturar datos de una web y ponerlos en mi blog y si estos se actualizarían diariamente como la web de origen.

    Concretamente estos los datos de mareas de una pagina de Climatología.

    Serian los correspondientes a la ría de Foz
    Este es el enlace: http://www.meteogalicia.es/web/predicion/maritima/mareasIndex.action

    Los datos estes:
    Ría de Foz
    Hora Altura
    Preamar 03:43 4.0
    Baixamar 09:52 0.9
    Preamar 16:01 3.8
    Baixamar 22:04 0.8

    Creo que el código fuente de los datos que quiero capturar de forma automática seria este:

    Ría de Foz

    Hora
    Altura

    Preamar

    03:43
    4.0

    Baixamar

    09:52
    0.9

    Preamar

    16:01
    3.8

    Baixamar

    22:04
    0.8

    A ver si me puedes ayudar, te lo agradecería mucho.
    Un saludo.

  122. victor says:

    buenos días.

    una pregunta como parsear los datos obtenidos de http://d.mismarcadores.com/x/feed/f_1_0_-5_es_1/.

    no puedo si me hiciera el favor de explicarme o darme un lugar de buscar porque he googleado y no he podido.

    gracias de antemano.

  123. Carlos Amaral says:

    Hola como estas? un amigo me pide que le ponga en su web unas cotizaciones de moneda del banco central uruguayo.

    Las cotizaciones se ven aqui… (es el cuadro de arriba a la derecha).

    http://www.bcu.gub.uy/Estadisticas-e-Indicadores/Paginas/Cotizaciones.aspx

    Como puedo capturar y presentar esos datos uno por linea mas o menos como se ven ahi?

    Desde ya muchas gracias por tu paciencia!!!
    Saludos desde uruguay.

  124. Alejandro Gallardo says:

    Hola genio!
    Trabajando con Winforms en Asp.net, resolví el problema de obtener todo el código fuente de una página usando este trozo de código.
    http://stackoverflow.com/questions/18065526/pulling-data-from-a-webpage-parsing-it-for-specific-pieces-and-displaying-it

    Usé el código de la primera respuesta, esa que empieza con la línea
    string result = null;

    El problema que tengo, es que debo obtener los horarios de salida de vuelos presente aquí:
    http://www.despegar.cl/shop/flights/results/oneway/ANF/SCL/2016-03-15/1/0/0?from=SB
    El problema está en que en el fuente, donde deberían ir los vuelos me aparecen con esas etiquetas {hour.formatted{ que solo los puedo ver reemplazados con el inspector de Chrome, pero antes no.

    Tienes alguna idea de como puedo obtener los horarios?
    Gracias por tu ayuda.

  125. Jose Antonio Rojas says:

    Buenas tardes como puedo obtener la información de esta pagina http://www.maquinaazul.com.ve/programacionact.php?dia=VIERNES

    He estado haciendo esto pero da error. Ayuda por favor
    $c = curl_init(‘http://www.maquinaazul.com.ve/programacionact.php?dia=VIERNES‘);
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($c, CURLOPT_HTTPHEADER, array(
    “Accept:*/*”,
    “Accept-Language:*”,
    “Cache-Control:max-age=0″,
    “Connection:keep-alive”,
    “Cookie:__gads=ID=5e31b170a069f6a3:T=1443845779:S=ALNI_MYKSXaRGMBofY3dxLmn10mEDx4psA; _gat_UA-207011-10=1; _ga=GA1.2.1109485284.1443845790″,
    “Host:www.maquinaazul.com.ve”,
    “Referer:http://www.maquinaazul.com.ve/programacionact.html“,
    “User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36″,
    “X-Fsign:SW9D1eZo”,
    “X-GeoIP:1″,
    “X-Requested-With:XMLHttpRequest”,
    ));

    $content = curl_exec($c);
    if (curl_errno($c)) {
    echo curl_error($c);
    echo “\n”;
    $content = ”;
    }else{
    curl_close($c);
    }

    if (!is_string($content) || !strlen($content)) {
    echo “Failed to get contents.”; $content = ”;
    }

  126. Johel says:

    Hola! Excelnte aporte. Lo probe con un dato y va de diez. Lo estoy probando con los datos que otorga una estacion metorologica y los muestra en uan web html.
    Ahora la pregunta seria: Como puedo hacer para extraer varios datos de esa pagina para luego generar otro sitio mas grafico o bien un plugin de WordPress.
    La pagina desde donde se toman los datos es estaa: http://www.coopascension.com.ar/mb5.htm
    Desde ya gracias!

  127. Giovanny says:

    Hola amigo, veo que en este tema eres un duro, estoy investigando sobre este tema y no he podido lograr mi solución tal vez tu tengas una idea que me ayude, tengo esta página

    http://lossalserosdeverdad.radiostream321.com/radio.php?ipp=50.22.217.113&port=24420&ch=5&radioname=lossalserosdeverdad&rrr111=radiostream321.com&radio_id=2683222&testip=localhost&emp=&mobile_phone=yes

    Aqui hago una transmisión musical pero como puedes ver el sitio no es muy agradable, he creado otro y quisiera tomar los datos de listeners y song que puedes ver arriba del reproductor, en este momento te debe salir fuera de línea pero son los datos de ese dív azul…. Cuando trato de adentrarme en ese código encuentro frames tras frames y la verdad ya no se como capturarlos… Agradezco cualquier ayuda….

  128. John says:

    Hola que tal, como podria realizar la extraccion de datos de una celda de una hoja de calculo de Google, ya que si miro el codigo fuente no encuentro ninguna pista de las celdas. Agradezco tu apoyo

  129. huberto says:

    Hola, lo hepreguntado en otro foro, pero nadie me sabe decir como se haria este scraping.

    Bien lo explico un poco: quiero sacar unas imagenes incrustadas en una tabla bajo php la url es : http://www.meteoval.com/Prevision/Previsionlasolana.html, las imagenes son los soles, nubes y llivia. Son .gif que van cambiando segun el dia y la hora.

    Con estas imagenes las quiero incluir en mi web en una imagen de fondo ya prediseñada esta es la url: http://atodaradio.es/13.jpg, la localizacion de la imagen a atraer se pondria por coordenadas en la imagen.

    hasta ahora solo he podido traer la tabla entera que esta sobre ifarmes, nada mas. Logicamente aqui me pierdo.

    $html = file_get_html(”);

    El resultado del supuesto codigo seria este: , pero esto es con corta y pega sobre un editor de fotos.

    Perdon, logicamente las imagenes se cambierian en mi web, por unas ya prediseñadas.

    Es un pequeño matiz que se me olvidaba, por si las imagenes originales tienen dderecho de autor.

    Quiero que se haga automaticamante.

    Muchas Gracias ante todo

  130. peter says:

    hola buenas tardes necesito extraer los datos al consultar el CURP en mexico https://consultas.curp.gob.mx/CurpSP

    este es un CURP valido JUCG510910MGTRRD08 tiene captcha

    te lo agradezco

  131. peter says:

    loadHTML($resultado);
    $xpath = new DOMXPath(@$doc);
    $data = $xpath->query(‘//form/input[@type="hidden"][position() >= 1 and position() nodeValue . '';
    }

    } else {
    echo "No hay soporte para cURL";
    }

    ocupe este codigo y nada

  132. peter says:

    loadHTML($resultado);
    $xpath = new DOMXPath(@$doc);
    $data = $xpath->query(‘//form/input[@type="hidden"][position() >= 1 and position() nodeValue . '';
    }

    } else {
    echo "No hay soporte para cURL";
    }

  133. peter says:

    loadHTML($resultado);

  134. maicol says:

    alguna ayuda con esto!!!

    Usted está escribiendo un programa para una agencia de prensa. Su jefe le ha encargado que su programa busque noticias en sitios extranjeros de renombre para que los editores locales las evalúen. Para ello siga los siguientes pasos:
    • Escriba un pequeño código en PHP que obtenga 5 noticias distintas de distintos sitios online. Copie el código resultante en la plantilla de entrega del control.

  135. Enrique says:

    Buenas tardes, bastante interesante el articulo, podría ayudarme a capturar los valores del
    Dow Jones
    Nasdaq
    S&P 500
    de este link https://es.finance.yahoo.com/#ms-tab3 para ubicarlos en otro sitio web y que sigan actualizándose automáticamente.

    Gracias por su colaboración

  136. Jose says:

    como jalo las noticias de esta web para que se almacen en mi web wordpress http://www.elshow.pe

  137. Abe Hoyos says:

    Hola, buen dia.
    Quisiera sacar la lista de canciones que se generan dinamicamente en este enlace http://195.154.56.114:9324/played.html

    Podrias ayudarme en esto? Si tiene algun costo escribeme al abelhoyos@gmail.com lo necesito urgente. Tu solo dime cuanto es.

  138. Viri says:

    Hola, Buen día

    estuve intendanto implemetar tus codigos pero no logro sacar los datos de la tabla SPOT, compra y venta, , me puedes ayudar ?

    http://finanzasenlinea.infosel.com/IntercamWeb/Divisas.aspx

    • deerme.org says:

      Hola Viri

      El código que debes implementar es sencillo, es practicamente un GET y luego una expresión regular o una consulta XPath para extraer el dato. Yo soy más amigo de las regex. Eso si, el sitio requiere que le inyectemos un user-agent real.

      El siguiente código te extrae el dato (recuerda modificar la url que tiene un espacio):

      <?php
      
      $data = array();
      
      $url = "http : //finanzasenlinea.infosel.com/IntercamWeb/Divisas.aspx";
      $ch = curl_init($url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
      curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
      $buffer = curl_exec($ch);
      
      if ( preg_match('|<span id="lblCompraDolar48HrsActual">(\d+\.*\d*)</span>|is',$buffer,$cap) ){
          $data["compra"] = $cap[1];
      }
      
      if ( preg_match('|<span id="lblVentaDolar48HrsActual">(\d+\.*\d*)</span>|is',$buffer,$cap) ){
          $data["venta"] = $cap[1];
      }
      
      print_r($data);
      
  139. RafaS says:

    Hola Viri,, quisiera mostrar en mi pagina solo el balance final de una cartera de BTC, trate modificando varios de los codigos que tienes pero me fue imposible,, no se si sera posible .. de esta o cualquier cartera,, es cuestion de cambiar la rireccion de la cartera

    https://blockchain.info/es/address/1NcebYHK3c9cAkbnePU63umLPujmkwDBBD/

  140. maximo says:

    hola Deerme esto no esta funcionando quiero sacar los datos

  141. Joseviana says:

    Hola Deerme. Antes de nada agradecerte todo lo que compartes a muchos nos ayuda a ir aprendiendo.
    Estoy intentado recuperar los datos de esta web:
    http://www.futgal.es/pnfg/NPcd/NFG_CmpJornada?cod_primaria=1000120&CodCompeticion=3538799&CodGrupo=3794118&CodTemporada=12&CodJornada=6&Sch_Codigo_Delegacion=7&Sch_Tipo_Juego=

    Haber si puedes orientarme. Un saludo

  142. maximo says:

    <?php

    $c = curl_init('http://www.mismarcadores.com/partido/4EQkFrsE/&#039 ;) ;
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($c, CURLOPT_HTTPHEADER, array(
    "Accept: */*",
    "Accept-Language: *",
    "Host: d.mismarcadores.com",
    "Referer: http ://d.mismarcadores.com/x/feed/proxy",
    "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0",
    "X-Fsign: SW9D1eZo",
    "X-GeoIP: 1",
    "X-Requested-With: XMLHttpRequest",
    "X-utime: 1"
    ));
    $content = curl_exec($c);
    curl_close($c);

    echo $content;

  143. maximo says:

    lo hago de esta manera tampoco me muestra:

    Date.prototype.addHours = function(h) {
    this.setTime(this.getTime() + (h*60*60*1000));
    return this;
    }
    function timestamp_to_hour(ts) {
    var times = ts * 1000;
    var now = new Date(times);
    now.addHours(5);
    var horas = now.getHours();
    var minutos = now.getMinutes();
    if(minutos < 10)
    minutos = "0" + minutos;
    if(horas < 10)
    horas = "0" + horas;

    return horas + ":" + minutos;
    }
    var estado_para = null;

    function update() {
    var randd = Math.random() * 1000;

    $.ajax({
    url : "http://158.69.212.149/marcador/4EQkFrsE?&quot; + randd,
    type : "get",
    async: true,
    success : function(text) {
    var json = JSON.parse(text);

    var inicio = json.DC;
    var cortes = json.DD;
    var timeStamp = Math.floor(Date.now() / 1000);
    var dif = ((timeStamp – cortes) / 60);
    var minutos = Math.round(dif);

    if (json.DB == 3)
    var tmp = "";
    if (json.DB == 12)
    var tmp = "PT";
    if (json.DB == 17)
    var tmp = "1er Set";
    if (json.DB == 18)
    var tmp = "2º Set";
    if (json.DB == 19)
    var tmp = "3er Set";
    if (json.DB == 20)
    var tmp = "4º Set";
    if (json.DB == 21)
    var tmp = "5º Set";
    if (json.DB == 47)
    var tmp = "1er Set – Tiebreak";
    if (json.DB == 48)
    var tmp = "2º Set – Tiebreak";
    if (json.DB == 49)
    var tmp = "3er Set – Tiebreak";
    if (json.DB == 50)
    var tmp = "4º Set – Tiebreak";
    if (json.DB == 51)
    var tmp = "5º Set – Tiebreak";

    if (json.DB == 22)
    var tmp = "1er Cuarto";
    if (json.DB == 23)
    var tmp = "2º Cuarto";
    if (json.DB == 24)
    var tmp = "3er Cuarto";
    if (json.DB == 25)
    var tmp = "4º Cuarto";
    if (json.DB == 38)
    var tmp = "ET";
    if (json.DB == 13)
    var tmp = "ST";
    if (json.DB == 7)
    var tmp = "Penales";
    if (json.DB == 6)
    var tmp = "T.EX";

    if (json.DB == 22 || json.DB == 23 || json.DB == 24 || json.DB == 25 || json.DB == 17 || json.DB == 47 || json.DB == 18 || json.DB == 48 || json.DB == 19 || json.DB == 49 || json.DB == 20 || json.DB == 50 || json.DB == 21 || json.DB == 51)
    $("#tiempo").html(tmp);
    else
    $("#tiempo").html(tmp + " " + minutos + "”);

    if ((typeof json.DB) === “undefined”)
    $(“#4EQkFrsE #tiempo”).html(“”);

    if (json.DA == 1) { // NO EMPEZO
    $(“#estado”).html(timestamp_to_hour(inicio));
    $(“#goleslocal”).html(“-”);
    $(“#golesvisitante”).html(“-”);
    $(“#tiempo”).css(“visibility”, “hidden”);
    }

    if (json.DA == 2){ // EN JUEGO
    $(“#estado”).html(“EN JUEGO”);
    $(“#tiempo”).css(“visibility”, “visible”);
    }

    if (json.DA == 3) { // FINAL
    $(“#estado”).html(“FINAL”);
    $(“#tiempo”).html(“”);
    $(“#tiempo”).css(“visibility”, “hidden”);
    }

    var resultado_local = json.DE;
    var resultado_visitante = json.DF;
    var escudolocal = json.escudolocal;
    var escudovisitante = json.escudovisitante;
    var local = json.local;
    var visitante = json.visitante;
    var torneot = json.torneo;

    $(“#torneot”).html(torneot);

    $(“#4EQkFrsE #goleslocal”).html(resultado_local);
    $(“#4EQkFrsE #golesvisitante”).html(resultado_visitante);

    $(“#4EQkFrsE #escudolocal”).html(“”);
    $(“#4EQkFrsE #escudovisitante”).html(“”);

    $(“#4EQkFrsE #local”).html(local);
    $(“#4EQkFrsE #visitante”).html(visitante);

    }
    })
    }

    update();

    window.setInterval(function() {
    update();
    }, 30000);

  144. Enrique Rivas says:

    Muy buenas tardes, tengo una duda y antes de manejar codigo quisiera hacerte la pregunta:

    ¿Es posible asi como se extrae la informacion de ciertas DIV, mandar informacion para capturar automaticamente en un formulario web?

    Para mañana espero poder redactarte un texto con la idea un poco más clara, Muchas gracias por compartir informacion, Eres un muy muy buen programador

    Saludos!!

    • deerme.org says:

      Hola Enrique

      Gracias por tus palabras. Respecto a tu pregunta, no me quedo tan clara, sin embargo, desde un punto de vista técnico, puedes simular todas las acciones que realiza un usuario sobre una web. Para luego realizar lo mismo de forma automatizada.

      En general, siempre se debe analizar el sitio, hoy en día, todos los browser traen herramientras para analizar el tráfico hacía la web (ejemplo en Chrome al presionar F12 en la pestaña de Red/Network puedes ver todas las peticiones).

      Una vez identificadas las peticiones (GET/POST/PUT etc ..) se deben implementar. Eso si, muchas veces, las acciones requieren de una cookie o algún parámetro previo de uno de los pasos anteriores.

      Saludos!

  145. maximo says:

    Hola amigo deerme tu codigo quiero hacer funcionar pero nada :
    <?php

    $c = curl_init('http://d.mismarcadores.com/x/feed/t_1_152_257_-3_es_y_1&#039 ;) ;
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($c, CURLOPT_HTTPHEADER, array(
    "Accept: */*",
    "Accept-Language: *",
    "Host: d.mismarcadores.com",
    "Referer: http://d.mismarcadores.com/x/feed/proxy",
    "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0",
    "X-Fsign: SW9D1eZo",
    "X-GeoIP: 1",
    "X-Requested-With: XMLHttpRequest",
    "X-utime: 1"
    ));
    $content = curl_exec($c);
    curl_close($c);

    print_r ($content);

  146. Enrique Rivas says:

    Muy buenas tardes compañero de código!!

    Deja te cuento como me ha ido con la implementacion de la función PHP file_get_contents(“http://www.mi_url.com/”)

    En primera instancia debo aclarar que los servicios hosting gratuitos que estuve probando, NO me permitían el uso de dicha función, en otras palabras, esta “apagada” por default. Así que decidí implementarlo en un espacio del server de la empresa en donde trabajo y vualá. corriendo al 100!!

    No es por nada, pero blogs como en tuyo definitivamente nos salvan la vida en más de una ocasión, así que agradecido estoy, espero poder contribuir en tu trabajo, o ayudando a otros internautas.

    Con respecto a mi entrada anterior y tu amable respuesta debo agregar lo siguiente.

    En efecto me interesa hacer una web con que simule algunas de las acciones que realizaría un usuario sobre determinada web.

    Ésto de forma automatizada.

    Como la web a la que le pienso “inyectar” los formularios predefinidos no usa CAPTCHA ni ninguna otra de las técnicas de ofuscación de “robots” el camino no es tan complicado; sin embargo si necesito de tus conocimientos para saber QUE FUNCIÓN (ES) se debe(n) usar, para que al correr el PHP, se inyecten dichos campos de manera automática.

    Gracias desde Ya,
    Tu amigo desde Chihuahua, México

    Enrique Rivas.

  147. joseucro1 says:

    COMO HAGO PARA CAPTURAR LOS DATOS DE ESTAS PAGINAS http://WWW.BET365.COM Y LLEVARLOS A MI WEB http://www.livescore.in/, http://www.marcadores.com/ ASI COM HACEN ESTAS PAGINAS

  148. Gorka says:

    Muy buenas tardes, estoy aplicando tu código para sacar de una web un listado enorme de precios.
    Espero me puedas echar una mano porque por mas vueltas que le estoy dando no encuentro el error.
    Si en el array meto dos urls funciona correctamente pero en cuanto introduzco alguna linea mas casca.

    Este es el código:

    <?php

    $datos = array(
    "http://www.licorea.com/capit%C3%A1n-kidd-reserva-20-a%C3%B1os-canarias-p-766.html",
    "http://www.licorea.com/black-death-extra-old-p-2546.html",
    "http://www.licorea.com/capit%C3%A1n-kidd-reserva-20-a%C3%B1os-canarias-p-766.html&quot;
    );
    var_dump($datos);
    $contador=count($datos);

    echo $contador." url”;

    for ($i=0; $i<$contador; $i++) {

    $data = file_get_contents($datos[$i]);
    if(preg_match('|(.*?)|’,$data, $cap))
    {
    echo “Precio ” .$i. ” ” .$cap[$i]. “”;
    }
    }
    ?>

    y el resultado:

    array (size=3)
    0 => string ‘http://www.licorea.com/capit%C3%A1n-kidd-reserva-20-a%C3%B1os-canarias-p-766.html‘ (length=81)
    1 => string ‘http://www.licorea.com/black-death-extra-old-p-2546.html‘ (length=56)
    2 => string ‘http://www.licorea.com/capit%C3%A1n-kidd-reserva-20-a%C3%B1os-canarias-p-766.html‘ (length=81)
    3 url
    Precio 0 EUR 95,95
    Precio 1 EUR 14,95

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Notice: Undefined offset: 2 in E:\wamp\www\SacarDatos\pruebas.php on line 18
    Call Stack
    # Time Memory Function Location
    1 0.0005 250440 {main}( ) ..\pruebas.php:0
    Precio 2

    Gracias Saludos!

  149. Gorka says:

    Perdona pero el código es este, no se porque se ha copiado mal. Lo único que cambia es el patrón.
    <?php

    $datos = array(
    "http://www.licorea.com/capit%C3%A1n-kidd-reserva-20-a%C3%B1os-canarias-p-766.html",
    "http://www.licorea.com/black-death-extra-old-p-2546.html",
    "http://www.licorea.com/capit%C3%A1n-kidd-reserva-20-a%C3%B1os-canarias-p-766.html&quot;
    );
    var_dump($datos);
    $contador=count($datos);

    echo $contador." url”;

    for ($i=0; $i<$contador; $i++) {

    $data = file_get_contents($datos[$i]);
    if(preg_match('|(.*?)|’,$data, $cap))
    {
    echo “Precio ” .$i. ” ” .$cap[$i]. “”;
    }
    }
    ?>

  150. Gorka says:

    No se que pasa, a ver ahora el patrón es este
    (.*?) |

  151. Ulises says:

    Hola Deerme, encontré este post que habla de extraer datos y quisiera ver si me pudieras ayudar en extraer info de esta pagina web:

    http://seia.sea.gob.cl/expediente/expedientesEvaluacion.php?modo=ficha&id_expediente=2131819041

    He probado de diferentes maneras pero no me trae datos desde php…

    Gracias por tus conocimientos

    • deerme.org says:

      Hola Ulises

      Ese sitio en párticular carga el contenido de la tabla a través de ajax, por lo tanto, lo que tienes que hacer es tratar de analizar los datos de la llamda ajax, analizando Network de Chrome te puedes dar cuenta que la URL de la llamada AJAX es al final un simple GET (http://seia.sea.gob.cl/expediente/xhr_documentos.php?id_expediente=2131819041). Apuntando a esa URL, deberías ser capaz de extraer los datos.

      Saludos!

      • Ulises says:

        Gracias por tu pronta respuesta,

        Efectivamente eso hice, de hecho lo he probado con todas las alternativas que has mostrado acá, pero no trae nada… creo saber el pq, esta usando una api de yahoo que carga los datos cuando se ingresa a ésta, entonces cuando llamo a la página no se invoca el llamado a cargar los datos, sino solo el, por decir, encabezado de la pag.

        Usan YAHOO.util.Connect.asyncRequest

        Se te ocurre algo como hacer, para cargar los datos invocando la conexion anterior cuando se ejecute la llamada?

        Gracias de nuevo por tu respuesta.

        Ulises

        • Ulises says:

          Estimado,

          Efectivamente lo hice con un get simple y un echo de lo que extrae y solamente trae el DOM inicial, por asi decirlo… la data la extrae con esa llamada que no se ejecuta con el get.

          Esto hice:

          $data = file_get_contents(“http://seia.sea.gob.cl/expediente/expedientesEvaluacion.php?modo=ficha&id_expediente=2131819041″);

          echo $data;

          Gracias de nuevo por tu atención.

          Ulises

          • deerme.org says:

            Ulises

            Debes hacer GET no a la página principal, si a la que te he indicado, ya que cargar el contenido por AJAX, ejemplo, usando DOM, podrías obtener los datos de esta manera (fijate que la URL contiene espacios, los debes eliminar)

            <?php
            $html = new DomDocument;
            $source = file_get_contents(" http : //seia.sea.gob.cl/expediente/xhr_documentos.php?id_expediente=2131819041");
            
            $html->loadHTML($source);
            $xpath = new DOMXPath( $html );
            $result = array();
            // Cada TR
            $trs = $html->getElementsByTagName("tr");
            
            foreach ( $trs as $tr )
            {
            
                $data["position"] = $tr->getElementsByTagName("td")->item(0)->nodeValue;
                $data["numero"] = $tr->getElementsByTagName("td")->item(1)->nodeValue;
                $data["documento"] = $tr->getElementsByTagName("td")->item(2)->nodeValue;
                $data["fecha_pub"] = $tr->getElementsByTagName("td")->item(3)->nodeValue;
                $data["remitido"] = $tr->getElementsByTagName("td")->item(4)->nodeValue;
                $data["destinatario"] = $tr->getElementsByTagName("td")->item(5)->nodeValue;
                $data["fecha_gen"] = $tr->getElementsByTagName("td")->item(6)->nodeValue;
                print_r($data);
            }
            

            Obteniendo algo como …

            )
            Array
            (
                [position] => 54
                [numero] => 866/2016
                [documento] => Of. Complementario al Pronunciamiento con Observaciones
                [fecha_pub] => 13/12/2016 11:48:03
                [remitido] => Ilustre Municipalidad de Pemuco
                [destinatario] =>
                [fecha_gen] => 12/12/2016 16:30:00
            )
            
          • Ulises says:

            Estimado,

            Gracias por su yuda, efectivamente era como decias…

            Un abrazo y gracias por compartir tus conocimientos.

            Ulises

  152. abel says:

    hola me podrian ayudar necsito pasar el valor de este div a yuna variabala

    l AD:

    de antemano muchisimas gracias

  153. JHON says:

    ALGUIEN QUE TENGA EL CODIGO FUENTE PARA EXTRAER LOS DATOS DE LA RENIEC PERU https://cel.reniec.gob.pe/valreg/valreg.do SOLO NOMBRES Y APELLIDOS EN DIFERENTES INPUTs

  154. Ulises says:

    Hola Deerme,

    Yo de nuevo, crei que me la iba a poder con otras páginas de mi anterior pregunta, pero escarbé en el network y no encuentro la solución…

    Quiero ahora extraer los datos que están en una tabla de esta página: http://seia.sea.gob.cl/busqueda/buscarProyectoAction.php?nombre=central

    la cosa rara es cuando paso a la página 2, por ejemplo, no me salen datos… la pagina 2 sería:

    http://seia.sea.gob.cl/busqueda/buscarProyectoAction.php?nombre=central&_paginador_refresh=1&_paginador_fila_actual=2

    Si tuvieras tiempo de echarle un vistazo, lo agradecería.

    Gracias por tu tiempo,

    Ulises

  155. Emilio says:

    Hola, muy buena tu página, pero este código no me funcionó, es posible que la web destino tengo un bloqueador o algo para evitar extraer contenido? Quería extraer de esta página: ht tp://animeflv. net/ver/43472/dragon-ball-super-72 el contenido del src del iframe: en el código fuente se ve así:

    <iframe src=\"https:\/\/animeflv.net\/embed_izanagi.php?key=o3eBuo-OhbuF07qvq3ivlJanp5KDmpepsLiHjH28w4vGdJZ90ba7rHqqjcd0jQ,,\"

    saludos

  156. lesly says:

    Hola,en mi caso, solo necesito extraer información de una tabla de un sitio web. de los valores de esa tabla, luego guardarlo en un archivo para que sean almacenados en bd. sabes que código debo usar solo para extraer info de la tabla. porque estoy probando uno donde me extrae toda la información dela pagina, y no se como hacer el filtro. gracias!

  157. Pedro says:

    Hola,
    en mi caso, necesito poner datos automaticamente en el formulario que aparece al final , donde el reCaptcha.
    http://www.revolico.com/modificar-anuncio.html?key=jjyBZFmzRFdX17736359

    Y tambien poder extraer email y numeros telefonicos de esta web
    http://www.revolico.com
    Saludos

  158. Javier says:

    hola!

    Como puedo extraer la tabla de “Ultimos sismos”

    ht tp://sismologia.cl

    Por favor
    Saludos

    • Pedro Vargas says:

      Javier

      La información se encuentra en un iframe/frame que carga la URL http://sismologia.cl/links/tabla.html

      Si ves el código fuente, se encuentra directamente en una tabla, por lo tanto, podrías cargar usando DOM o Regex.

      Algo como lo siguiente (ojo que la URL tiene un espacio):

      <?php
      //Example by deerme.org
      $source = file_get_contents('http : //sismologia.cl/links/tabla.html');
      libxml_use_internal_errors( true );
      libxml_clear_errors();
      $html = new DOMDocument();
      $html->loadHTML($source);
      $xpath = new DOMXPath( $html );
      $result = array();
      // Cada TR
      $trs = $html->getElementsByTagName("tr");
      foreach ( $trs as $tr )
      {
              $date = $tr->getElementsByTagName("td")->item(0)->nodeValue;
              $location = $tr->getElementsByTagName("td")->item(1)->nodeValue;
              $magnitude = $tr->getElementsByTagName("td")->item(2)->nodeValue;
      
              $data[] = array(
                      "date" => $date,
                      "location" => $location,
                      "magnitude" => $magnitude
              );
      }
      
      print_r($data);
      

      Saludos!

  159. Fernando says:

    Hola!!

    Como puedo extraer de esta página http://www.comuniazo.com/comunio/puntos?usuario=fercho10:

    -El nombre
    -Los puntos de la jornada
    -El general

    Saludos!!

  160. Yuirsito says:

    Hola!

    Cómo puedo extraer de éste enlace http://api.formice.com/mouse/stats.json todo el código / texto que está dentro del archivo stats.json?

    Me urge hacerlo, gracias de ante mano!!!

    • Pedro Vargas says:

      Hola Yuirsito

      En este caso es mucho más sencillo, que la respuesta está representada con el formato JSON y PHP dispone de un función para codificar/decodificar JSON. Sería algo como lo siguiente (la url tiene un espacio)

      <?php
      
      $dataraw = file_get_contents("http : //api.formice.com/mouse/stats.json");
      $data = json_decode($dataraw);
      print_r($data);
      
      • Yuirsito says:

        Hola!

        En realidad no sé si esté haciendo algo mal, coloqué ese mismo código en un archivo .php y al ejecutarlo sólo muestra esto “stdClass Object ( [error] => Mouse not found )”

        En realidad necesito el código que tiene ese archivo (el .json) que hace conexiones con una API y muestra estadísticas de los usuarios de un juego.

        • Yuirsito says:

          Lo que quiero es extraer el código fuente del archivo, no los valores o esas cosas. Osea, para hacer mi propio sistema de estadísticas con ESE código, pero claro, cambiando los datos de acceso de esa API por la mía.

  161. emanuel maldonado says:

    hola me podrian ayudar a extraer de una pagina el estado de un moden quiero ver si puedo armar una pagina para ver los equipos y agilizar mi trabajo espero respuestas mi correo es sistemala20@gmail.com desde ya muchisimas gracias

  162. Joaquin says:

    Hola, qué tal?

    Estoy intentando rescatar la información de rating de Google Playstore y no estoy pudiendo hacer que aparezca en mi sitio.

    Necesito rescatar de este sitio
    https://play.google.com/store/apps/details?id=com.ag.splashycats#details-reviews

    El dentro de

    Hay forma de poder hacer eso?

  163. ricardo jose reales amaris says:

    quiero aplicar el de la registraduria para una consulta masiva, de una base de datos que tengo en mysql de cedulas y guardar los datos del lugar de votacion en una tabla de consulta en mysql

    y me sale un error con lo basico

    $source = file_get_contents(‘https://wsp.registraduria.gov.co/censo/_censoResultado.php?nCedula=1065576283&nCedulaH=&x=71&y=17‘);
    libxml_use_internal_errors( true );
    libxml_clear_errors();
    $html = new DOMDocument();
    $html->loadHTML($source);
    $xpath = new DOMXPath( $html );
    $result = array();
    // Cada TR
    $trs = $html->getElementsByTagName(“tr”);
    foreach ( $trs as $tr )
    {
    // Cada TD
    $title = $tr->getElementsByTagName(“td”)->item(0)->nodeValue;
    $value = $tr->getElementsByTagName(“td”)->item(1)->nodeValue;

    echo $title . “\t” . $value.”\n”;
    $result[$title] = $value;
    }

    //print_r($result);

    /*
    $source = file_get_contents(‘http:/ /www3.registraduria.gov.co/censo/_censoresultado.php?nCedula=’ . $_REQUEST["cedula"] );
    $cedulas = array(“1045704313″,”1045704314″,”1045704315″,”1045704316″);

    foreach( $cedulas as $cedula )
    {
    $source = file_get_contents(‘http:/ /www3.registraduria.gov.co/censo/_censoresultado.php?nCedula=’ . $cedula );
    // luego el resto del codigo para la extracción …
    */

  164. Jimmy says:

    Epale hermano necesito una ayudita para extraer datos de la web https://poloniex.com/exchange#btc_eth necesito los last price, necesito colocarlo en un codigo HTML, mil gracias de ante mano

  165. Loli says:

    Hola como puedo en una web como por ejemplo: http://examinator.ws/ meter una url como por ejemplo http://www.hotelvillacarlos.com/ y que me capture el valor de la etiqueta hscore. Muchas gracias

  166. David says:

    Hola alguien me podria ayudar?
    Quiero poder extraer unicamente los datos de la linea de publicaciones de mi fan page de facebook. se puede? https://www.facebook.com/el10tv/
    una de las opciones que encontre es el plugins que da facebook pero sale el perfil la portada y todo eso, y solo quiero que salga lo que eh dicho mas arriba “publicaciones”

    desde ya muchisimas gracias.

  167. Ulises says:

    Hola Estimado, yo de nuevo,

    Quiero extraer los datos de consultores que vienen de 10 en 10 en una página pero cuando trato de extraerlos me deriva a otra que no tiene nada que ver con lo que yo deseo.

    El ciclo lo tengo en un for para ir de variando de página en página,podrias darme un atisbo de luz?

    Esta es la página:

    http://seia.sea.gob.cl/busqueda/buscarTitularConsultorAction.php?busca=true&externo=1&tipo=CONSULTORES&subtipo=EMPRESA&nombre_rut=&nombre=&presentacion=AMBOS&id_tipoexpediente=&id_tipoexpediente=0

    Agradecido de antemano

    Ulises

  168. isaac says:

    hola como puedo extraer los datos de esta pagina http://contribuyente.seniat.gob.ve/BuscaRif/BuscaRif.jsp si para poder aceder atraves de la cedula te exige el codigo de la imagen respondan es urgente

  169. Diego says:

    Hola estimado Deerme,
    Creo que a esta altura eres el único que me puede ayudar debido a tus conocimientos y la buena voluntad que has demostrado con otros compañeros con problemas, ya que me la he liado. Tengo un script de un cliente que precisa realizar cálculos en base a 3 variables fundamentales que se extraerían desde 2 webs diferentes. Esto antes se hacía de forma manual, pero ahora quiere que sea un proceso automatizado.
    Por un lado se precisa el valor de venta del dólar y el valor de la unidad indexada que se extraen si o si desde esta web:
    https://www.portal.brou.com.uy/web/guest/cotizaciones
    El otro valor es la U.R. que se extraería de la columna indicadores de esta web:
    https://www.bhu.com.uy/institucional/hist%C3%B3rico-cotizaciones/
    Yo ya no encuentro la forma de hacerlo y sinceramente necesito ayuda, porque tengo serio riesgo de perder mi cliente. Mil disculpas por molestarlos.

  170. Diego says:

    Estimado amigo,
    lo logré resolver, nada prolijo por cierto, pero funciona.
    Muchas gracias de todos modos.

  171. Julio says:

    Hola Maestro, tengo una consulta:
    Necesito colocar un iframe de una línea del código fuente de un html, es decir, solamente, por ejemplo, la línea 1728 de un html. No quiero colocar todo el iframe.
    Lo que pasa es que la línea, cambia cada tanto y me resulta problemático actualizar cada rato la línea nueva ya que no sé la secuencia de cambios de esa misma.
    Ejemplo de la página: (ojo) es SOLO EJEMPLO
    http://www.rojadirecta.me
    Necesito un iframe solo de la línea 1728 por ejemplo.
    Me puedes ayudar?

Leave a Reply


4 + three =