Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/01/2014, 09:40
construmet4
 
Fecha de Ingreso: enero-2014
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Extracción de datos de colegio oficial médicos barcelona

Cita:
Iniciado por jonni09lo Ver Mensaje
Puedes usar [URL="http://www.php.net/manual/es/domdocument.loadhtml.php"]DOMDocument[/URL] para que sea mas fácil obtener los datos del sitio

Saludos
Tengo hecho esto y funciona sólo con los primeros resultados, pero cuando tengo dos filas de datos ejemplo dirección tengo que introducirlo a mano

Código PHP:
<?php 
$enlace 
$_POST['enlace'];

echo 
'<p>El enlace seleccionado es ' .$enlace'</p>'

$searchURL $enlace;
$html file_get_contents($searchURL);

$patternform '/(<table.*<\/table>)/sm';
preg_match_all($patternform ,$html,$matches);

echo 
$matches[0][0];
//echo '<br />';
$doc = new DOMDocument();
@
$doc->loadHTML($html); //cargamos el HTML
$Nombre $doc->getElementById('cosArea_cosInterior_DadesCol');
$td $Nombre->getElementsByTagName('td');
 
foreach (
$td as $clave=>$data) {
    if (
$clave == && $data != ''){
            
$nombre $data->nodeValue;
        
//echo '<br>' .utf8_decode($nombre). '<br>';
    
}
    if (
$clave == && $data != ''){
            
$colegiado $data->nodeValue;
        
//echo '<br>' .$colegiado. '<br>';
    
}
    
    
//echo utf8_decode($data->nodeValue . '<br />');
}
    
//echo '<br /->ESPECIALIDADES<br /->';
$Especialidad $doc->getElementById('cosArea_cosInterior_DLEspec');
$td $Especialidad->getElementsByTagName('td');

foreach (
$td as $clave=>$data) {
    if (
$data != ''){
            
$especialidades $data->nodeValue;
            
$especialidades trim($especialidades'; ');
        
//echo '<br>' .utf8_decode($especialidades);
    
}
    
//echo utf8_decode($data->nodeValue . ';');
}

//echo '<br /->CONTACTO CUATRO <br><br> '; 
$contacto $doc->getElementById('cosArea_cosInterior_DLAdress');
$td $contacto->getElementsByTagName('td');
//$cadena= array($dirección, $cod_postal, $pobalcion, $provincia, $telefono);

// DIRECCIÓN //
foreach ($td as $clave=>$data) {
    
    
    if (
$clave == && $data != ' '){
            
$direccion $data->nodeValue;
            echo 
'<br>' .$clave" " .$direccion;
    }

    if (
$clave == && $data != ' ') {
            
$codpostal $data->nodeValue;
        echo 
'<br>' .$codpostal;
    }

    if (
$clave == && $data != ' ') {
            
$poblacion $data->nodeValue;
            
$poblacion trim($poblacion);
        echo 
'<br>' .$poblacion;
    }
    
    if (
$clave == && $data != ' ') {
        
$provincia $data->nodeValue;
        
$provincia trim($provincia);
        echo 
'<br>' .$provincia;
    }
    
// TELÉFONO Y EMAIL //    
    
if ($clave == 4) {
        
$telf $data->nodeValue;
        echo 
'<br>' .$telf;
    }
    if (
$clave == 5) {
        
$email $data->nodeValue;
        if (
$email false){
            echo 
"no existe e-mail";
        }else{
        echo 
'<br>' .$clave." ".$email;
    }
    }
    
//echo '<br><div id='.$clave.'>' .$clave. ": " .$data->nodeValue. '</div>';
}
?>

<? echo "DATOS MEDICO ";?>
<form action="InsertarDatoscomb.php" method="post">
<table width="90%" border="0">
  <tr>
    <td colspan="2"></td>
  </tr>
  <tr>
    <td width="27%">Nombre</td>
    <td width="73%"><label for="Nombre"></label>
      <input name="Nombre" type="text" id="Nombre" value="<?php echo utf8_decode($nombre); ?>" size="50"></td>
  </tr>
  <tr>
    <td>Colegiado</td>
    <td><label for="Colegiado"></label>
      <input name="Colegiado" type="text" id="Colegiado" value="<?php echo $colegiado?>" size="25"></td>
  </tr>
  <tr>
    <td>Especialidades</td>
    <td><label for="Especialidad"></label>
      <input name="Especialidad" type="text" id="Especialidad" value="<?php echo utf8_decode($especialidades);?>" size="75"></td>
  </tr>
  <tr>
    <td>Dirección</td>
    <td><label for="Direccion"></label>
      <input name="Direccion" type="text" id="Direccion" value="<?php echo utf8_decode($direccion);?>" size="75"></td>
  </tr>
  <tr>
    <td>Cod. postal</td>
    <td><label for="CodPostal"></label>
      <input name="CodPostal" type="text" id="CodPostal" value="<?php echo $codpostal;?>"></td>
  </tr>
  <tr>
    <td>Población</td>
    <td><label for="Poblacion"></label>
      <input name="Poblacion" type="text" id="Poblacion" value="<?php echo utf8_decode($poblacion);?>" size="50"></td>
  </tr>
  <tr>
    <td>Provincia</td>
    <td><label for="Provincia"></label>
      <input name="Provincia" type="text" id="Provincia" value="<?php echo utf8_decode($provincia); ?>" size="50"></td>
  </tr>
  <tr>
    <td colspan="2"><input type="submit" id="adddireccion2" value="añadir sergunda direccion" class="adddireccion2" /><div id="direccion2"></div></td>
    </tr>
  <tr>
    <td>Telf</td>
    <td><label for="Telefono"></label>
      <input name="Telefono" type="text" id="Telefono" value="<?php echo $telf;?>" size="75"></td>
  </tr>
  <tr>
    <td>Email</td>
    <td><label for="email"></label>
      <input type="text" name="email" id="email"></td>
  </tr>
  <tr>
    <td>Fecha</td>
    <td><label for="fecha"></label>
      <input name="fecha" type="text" id="fecha" value="<?php echo date('d/m/y');?>"/></td>
  </tr>
  <tr>
    <td>Hora</td>
    <td><label for="hora"></label>
      <input name="hora" type="text" id="hora" value="<?php echo date('H:i:s');?>" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="Enviar" type="submit" id="Enviar" value="Guardar registro" /></td>
  </tr>
</table>
</form>
La verdad es que el DOMDocument no lo he conseguido hacer funcionar, llevo ya 13 días con el tema y no salgo adelante