Foros del Web » Programando para Internet » PHP »

como puedo extraer parte de una pagina web

Estas en el tema de como puedo extraer parte de una pagina web en el foro de PHP en Foros del Web. Necesito extraer una fecha de una pagina web pero no se muy bien como deberia hacerlo, ya que el codigo fuente es bastante parecido seria ...
  #1 (permalink)  
Antiguo 18/08/2014, 10:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
como puedo extraer parte de una pagina web

Necesito extraer una fecha de una pagina web pero no se muy bien como deberia hacerlo, ya que el codigo fuente es bastante parecido seria algo asi el codigo fuente:

Código HTML:
Ver original
  1. <div id="contenedor">
  2. <div class='resultado'>
  3.     <h1>basket</h1>
  4.     <div class='datos'>
  5.          <p>proximo partido el dia <span>24 junio</span></p>
  6.     </div>
  7. </div>
  8.  
  9. <div class='resultado'>
  10.     <h1>futbol</h1>
  11.     <div class='datos'>
  12.          <p>proximo partido el dia <span>3 diciembre</span></p>
  13.     </div>
  14. </div>
  15. </div>

Necesito extraer la fecha del proximo partido es decir el segundo div con clase resultado, se que se puede con file_get_contents, pero no se muy bien como hacerlo para que me recupere solo la fecha en este caso 3 diciembre, alguien me puede ayudar?
saludos.
  #2 (permalink)  
Antiguo 18/08/2014, 11:01
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: como puedo extraer parte de una pagina web

Con un parser de html: http://simplehtmldom.sourceforge.net/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 18/08/2014, 11:14
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: como puedo extraer parte de una pagina web

también lo puedes hacer con el DOM de php http://php.net/manual/es/book.dom.php aunque por norma general yo suelo utilizar el Simple Html Dom para extraer gran cantidad de datos del las webs.
  #4 (permalink)  
Antiguo 18/08/2014, 11:44
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: como puedo extraer parte de una pagina web

No me esta funcionando hice esto:

$patron="<h1>futbol</h1><div class='datos'><p>proximo partido el dia <span>3diciembre</span></p></div>";
$html = file_get_html('http://www.dominio.com');
$resultado=$html->find($patron);
print_r($resultado);

Triby2 igual con el dom de php ya me sirve ya que realmente solo necesito extraer la fecha me puedes poner un ejemplo de como funciona el dom de php?
saludos.
  #5 (permalink)  
Antiguo 18/08/2014, 15:16
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: como puedo extraer parte de una pagina web

Cita:
Iniciado por pithon Ver Mensaje
No me esta funcionando hice esto:

$patron="<h1>futbol</h1><div class='datos'><p>proximo partido el dia <span>3diciembre</span></p></div>";
$html = file_get_html('http://www.dominio.com');
$resultado=$html->find($patron);
print_r($resultado);

Triby2 igual con el dom de php ya me sirve ya que realmente solo necesito extraer la fecha me puedes poner un ejemplo de como funciona el dom de php?
saludos.
Con el DOM tienes que usar la función document.getElementsByTagName('elemento');

En cuanto a tu patrón jamás funcionará para buscarlo por el simple_html_dom. Lee el manual de usuario para saber cómo encontrar las etiquetas correctamente y poder extraer.

Código PHP:
Ver original
  1. $resultado = $html->find('span',0)->plaintext;

Donde el ZERO es el span correspondiente desde el primero que encuentre hasta el último, empezando por el índice 0, para sacar la segunda fecha debes de cambiar el 0 por el 1, aunque con el foreach es más fácil claro si tienes muchos partidos y no quieres ponerte a contar cuántos hay.
  #6 (permalink)  
Antiguo 22/08/2014, 16:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: como puedo extraer parte de una pagina web

Hola triby en principio agradecerte tu colaboracion simple_html_dom ya me funciona pero el dom de php no se como puedo hacer recuperar lo que quiero ya que con el document.getElementsByTagName me recupera todas las etiquetas por su nombre, pero no se como se tendria que hacer para recuperar la primera.
saludos.
  #7 (permalink)  
Antiguo 22/08/2014, 16:54
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: como puedo extraer parte de una pagina web

Al final consegui que funcionara pero tengo un problema necesito extraerlo de una pagina externa pero no funciona lo hice asi:
Código PHP:
Ver original
  1. $html = file_get_contents('http://www.dominio.com');
  2. $doc = new DOMDocument;
  3. $node = $doc->loadHTML($html);
  4. $node = $doc->getElementsByTagName('span')->item(0);
  5. echo $node;

el problema lo estoy tendiendo en el file_get_contents que no me captura el codigo fuente, como puedo solucionarar, alguna ayuda?
gracias.
  #8 (permalink)  
Antiguo 27/08/2014, 08:12
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: como puedo extraer parte de una pagina web

Cita:
Iniciado por pithon Ver Mensaje
Al final consegui que funcionara pero tengo un problema necesito extraerlo de una pagina externa pero no funciona lo hice asi:
Código PHP:
Ver original
  1. $html = file_get_contents('http://www.dominio.com');
  2. $doc = new DOMDocument;
  3. $node = $doc->loadHTML($html);
  4. $node = $doc->getElementsByTagName('span')->item(0);
  5. echo $node;

el problema lo estoy tendiendo en el file_get_contents que no me captura el codigo fuente, como puedo solucionarar, alguna ayuda?
gracias.
Aunque te parezca una locura (a mi me funciona) en este caso, a ese código le añades la librería del simple_html_dom y extrae la web con su función principal en vez de utilizar file_get_contents()

Código PHP:
Ver original
  1. $html = file_get_html('http://www.dominio.com');

Etiquetas: fecha, parte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:41.