Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/11/2012, 14:36
Avatar de xarmagedonx
xarmagedonx
 
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 8 meses
Puntos: 29
Busqueda Extraer descripcion y keys de un articulo de wikipedia

Hola amigos de FDW!!!, estoy desarrollando un webcrawler, y se me presentó el siguiente problema, no puedo extraer una descripción y keywords de un artículo de wikipedia.

Lo que hace el código es extraer en caso de que la meta descripción y meta keywords no exista, el primer parrafo para la descripción y las bold, italica y h1 para las keys.

Pero en la base de datos en la seccion de keywords me guarda "Array Array Array" y en la descripción, directamente en blanco.

Esta es la parte del código que creo que está fallando:
Código PHP:
function saveUrl($url$prof$patron$html) {
    
$retorno false;
    
$pos strpos($url$patron);
    if (
$prof >= 1) {
        
preg_match_all("(<title>(.*)<\/title>)siU"$html$title);
        
$metas get_meta_tags($url1);
        
$title $title[1][0];
        
$titulo html_entity_decode($titleENT_QUOTES'UTF-8');
        
$descripcion = isset($metas["description"])?$metas["description"] : '';
        
$keywords = isset($metas["keywords"])?$metas["keywords"] : '';
    if (empty(
$descripcion)){
obtenerMetaDescription($html);
    }
    if (empty(
$keywords)){
    
preg_match_all("#<\s*h1[^>]*>[^<]+</h1>#is"$html$encabezado);
    
preg_match_all("#<\s*b[^>]*>[^<]+</b>#is"$html$negrita);
    
preg_match_all("#<\s*i[^>]*>[^<]+</i>#is"$html$italica);
    if(!empty(
$encabezado)){
    
$h1 $encabezado[0];
    }
    if(!empty(
$negrita)){
    
$bold $negrita[0];
    }
    if(!empty(
$italica)){
    
$italic $italica[0];
    }
    
$keys .= $bold;
    
$keys .= " ";
    
$keys .= $h1;
    
$keys .= " ";
    
$keys .= $italic;
    
$keywords substr(strip_tags($keys), 0200);
}
        
storeLink($titulo$descripcion$url$keywords$prof);
        
$retorno true;
    }
    return 
$retorno;
}
function 
obtenerMetaDescription($html) {
     
preg_match_all('#<p>(.*)</p>#Us'$html$parraf);
    if(!empty(
$parraf)){
    
$descripcion substr(strip_tags($parraf[1][0]), 0200);
    }
    } 
No entiendo bien porque no extrae las keywords y a la descripción, ¿Cómo puedo solucionar el problema?

Saludos y gracias!