Foros del Web » Programando para Internet » PHP »

Curl->Obtener texto principal de una web

Estas en el tema de Curl->Obtener texto principal de una web en el foro de PHP en Foros del Web. Buenas tardes, Estoy haciendo una web que incluye un sistema de clasificación de enlaces. Quiero que la gente incluya la url y el sistema solo ...
  #1 (permalink)  
Antiguo 10/02/2012, 07:37
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 2 meses
Puntos: 2
Curl->Obtener texto principal de una web

Buenas tardes,

Estoy haciendo una web que incluye un sistema de clasificación de enlaces. Quiero que la gente incluya la url y el sistema solo añada el title y el primer parrafo del texto de la noticia para luego poner un "leer más" que le lleve a la web en cuestión.

El title es facil obtenerlo pues siempre va entre las etiquetas <title> lo que no tengo ni idea de como obtener es el texto principal de la noticia, ya que en el body de una web hay muchísimas cosas.

Los que useis Facebook y hayais pegado un link en vuestro muro sabréis a lo que me refiero. Con Facebook publiques el link que sea, a cualquier tipo de web, sus sistema extrae siempre el texto de la noticia, no se confunde, no saca el texto que puede ir en una de las columnas de la web, en el pie de página...

Alguien se hace una idea de como se puede filtrar el html de una pagina para aislar el texto principal de esta? Muchisimas gracias.
  #2 (permalink)  
Antiguo 10/02/2012, 08:04
 
Fecha de Ingreso: abril-2011
Mensajes: 33
Antigüedad: 13 años
Puntos: 7
Respuesta: Curl->Obtener texto principal de una web

Buenas yo usaria file_get_contents (PHP 4 >= 4.3.0, PHP 5)

su uso es muy facil
Código PHP:
$content file_get_contents('url a obtener'
y despues para filtrar partes del html puedes usar expresiones regulares, si buscas por el sr google "extract links for page in php"

o bien si te sirve el enlace
http://4rapiddev.com/php/php-parse-title-description-keywords-from-a-website/
  #3 (permalink)  
Antiguo 10/02/2012, 08:04
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Curl->Obtener texto principal de una web

Lo que hace realmente Facebook es obtener el contenido del meta-tag description.
sino deja la URL como descripción.

Saludos.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #4 (permalink)  
Antiguo 10/02/2012, 08:32
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Curl->Obtener texto principal de una web

Tienes razón Ribon, no me había percatado de eso, siendo así es muy facil obtener esa información, muchas gracias!

neuronic gracias a ti también, pero para el tema de las meta tags no tengo ningún problema, ya se hacerlo ahora mismo, mi pregunta era para obtener el texto principal de una noticia, sacado del body, no de las metatags.
  #5 (permalink)  
Antiguo 10/02/2012, 11:37
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Curl->Obtener texto principal de una web

Cita:
Iniciado por neuronic Ver Mensaje
Buenas yo usaria file_get_contents (PHP 4 >= 4.3.0, PHP 5)

su uso es muy facil
Código PHP:
$content file_get_contents('url a obtener'
y despues para filtrar partes del html puedes usar expresiones regulares, si buscas por el sr google "extract links for page in php"

o bien si te sirve el enlace
http://4rapiddev.com/php/php-parse-t...rom-a-website/
Cuando hicieron ese script, será que no sabian que existe la función get_meta_tags?


Código PHP:
Ver original
  1. <?php
  2. $tags = get_meta_tags('http://www.forosdelweb.com/');
  3.  
  4. echo '<pre>';
  5. print_r($tags);
  6. echo '</pre>';
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 10/02/2012, 14:17
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Curl->Obtener texto principal de una web

Si andresdzphp, pero que pasa con el <title>? La función get_meta_tags solo devuelvo las metas, pero no el title y mucho menos el contenido principal del body. Esa función esta bien para sacar la description, las keywords, el author...
  #7 (permalink)  
Antiguo 10/02/2012, 14:20
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Curl->Obtener texto principal de una web

Cita:
Iniciado por SubZero_mb Ver Mensaje
Si andresdzphp, pero que pasa con el <title>? La función get_meta_tags solo devuelvo las metas, pero no el title y mucho menos el contenido principal del body. Esa función esta bien para sacar la description, las keywords, el author...
Obviamente el comentario sobra, para obtener html es mucho mejor usar las clases DOM de PHP. El uso de expresiones regulares en este caso no es la mejor opción.

http://php.net/manual/es/book.dom.php

Te dejo un ejemplo que estuve haciendo básico:

Código PHP:
Ver original
  1. <?php
  2. $url = 'http://www.forosdelweb.com';
  3.  
  4. $html = file_get_contents($url);
  5.  
  6. $doc = new DOMDocument();
  7. $doc->loadHTML($html);
  8.  
  9. echo "titulo: {$doc->getElementsByTagName('title')->item(0)->nodeValue} <br /><br />";
  10.  
  11. $stats = $doc->getElementById('stats_footer')->getElementsByTagName('span');
  12.  
  13. echo "temas: {$stats->item(0)->nodeValue} <br />";
  14. echo "mensajes: {$stats->item(1)->nodeValue} <br />";
  15. echo "usuarios registrados: {$stats->item(2)->nodeValue}<br /><br />";
  16.  
  17. $metas = get_meta_tags($url);
  18.  
  19. echo "palabras claves: {$metas['keywords']}<br />";
  20. echo "descripcion: {$metas['description']}<br />";

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 10/02/2012 a las 15:02 Razón: Un ejemplo
  #8 (permalink)  
Antiguo 11/02/2012, 07:47
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Curl->Obtener texto principal de una web

Gracias andresdzphp, me ha servido mucho tu ejemplo! No conocia la clase DOM.
  #9 (permalink)  
Antiguo 11/02/2012, 11:19
 
Fecha de Ingreso: enero-2010
Mensajes: 9
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Curl->Obtener texto principal de una web

pues si es una web bien hecha, tendrá los titulos principales en etiquetas <h1></h1> o <h2></h2> ... algunas paginas optimizadas para SEO estan escritas estructuradamente...
lo de meta-tag me sigue pareciendo una gran idea... aunque no todos rellenan siempre esa info...

Etiquetas: html, principal
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 21:54.