Obtener informacion de una pagina con php

Iniciado por MaximAlekz, 10 Enero 2016, 07:30 AM

0 Miembros y 1 Visitante están viendo este tema.

MaximAlekz

Hola, buen día.

Tengo mi buscador, uno tipo google. Pero no es para buscar en toda la internet. Sólo local. Tengo una pagina de prueba con texto.
Ambas en el hosting claro está.

Lo que quiero es, que al registrar la URL de la pagina de prueba en mi base de datos, mi buscador analice dicha pagina y me muestre si hay alguna coincidencia o similitud con la palabra que estoy buscando, también que encontrara alguna imagen por medio de su "name" o "alt". Necesito varios casos para tener un buscador más completo.

Me sería de gran ayuda que pudieran ayudarme  ;D
Gracias.

#!drvy

Sin codigo ni mas detalles es imposible ayudarte. Lo que pides no es precisamente algo "simple".

Saludos

MaximAlekz

Bueno, es por eso que he venido a este foro. Este foro no es para cosas "sencillas". Gracias por responder

MaximAlekz

Ahora bien, aquí está mi código.
Index.php


Código (php) [Seleccionar]
<?php
require_once 'Conexion.php';
@
$Buscar $_GET['Buscar']; 
?>

<html>
    <head>
        <title><?php echo $Buscar?> - M&aacute;xima S</title>
        <link rel="stylesheet" type="text/css" href="css/stail.css">
    </head>
<body>
<form method="GET" action="">
<table>
<tr>
    <td><h1 id="engine"><a href="index.php">M&aacute;xima Search</a></h1></td>
</tr>
<tr>
   <td><div id="searchbox"><input autocomplete="off" id="search" type="text" name="Buscar" placeholder="Qu&eacute; quieres buscar" value="<?php echo $Buscar?>" /></div></td>
</tr>
</table>
<div id="total-result-search">
    <table border="0" width="600px">
   
            <?php
            
if($Buscar == NULL)
            {
                echo 
"<tr><td><div id='subindice-searchbox'>Ingrese una palabra o frase en el cuadro de b&uacute;squeda</div></td></tr>";
            }else{
            
$Busqueda "SELECT * FROM paginas WHERE Nombre LIKE '%$Buscar%' OR NombreCarEspecial LIKE '%$Buscar%' OR URL LIKE '%$Buscar%' OR Descripcion LIKE '%$Buscar%' ";
            
$Resultado mysql_query($Busqueda);
            
$Numero_De_Resultados = @mysql_num_rows($Resultado);
            echo 
"<tr><td><div id='subindice-searchbox'>Resultados de la busqueda</div></td></tr>";
            echo 
"<br />";
                 if (
$Numero_De_Resultados 1
                    {
                       echo 
"<tr><td><div id='subindice-searchbox'>Sin resultados</div></td></tr>";
                    } 
                        elseif(
$Numero_De_Resultados == 1
                         {
                            echo 
"<tr><td><div id='subindice-searchbox'>Solo un resultado</div></td></tr>";
                            echo 
"<br /><br />";
                            
$Inicio 0;
                        }
                        elseif(
$Numero_De_Resultados 1)
                        {
                            echo 
"<tr><td><div id='subindice-searchbox'>Varios resultados = ".$Numero_De_Resultados."</div></td></tr>";
                            echo 
"<br /><br />";
                            
$Inicio 0;
                        }
                        else
                        {
                            echo 
"Error";
                        }
            }

            while ((
$Fila = @mysql_fetch_array($Resultado)) && ($Inicio 10)) 
            {
                
$Nombre $Fila['Nombre'];
                
$URL $Fila['URL'];
                
$Descripcion $Fila['Descripcion'];

                echo 
"<tr><td><a id='nombrepagina-search' href='$URL'>".$Nombre."<a></td></tr>";
                echo 
"<tr><td><div id='descripcionpagina1-search'>".$URL."</div></td></tr>";
                echo 
"<tr><td><div id='descripcionpagina2-search'>".$Descripcion."</div></td></tr>";
                echo 
"<tr><td><hr id='linea-separa-search'></hr></td></tr>";
                
$Inicio++;
            }
            
            
?>

    </tr>
    </table>
    </div>
</form>
</body>
</html>


Agregar.php - Para agregar más resultados a mi base de datos, y que así sean captados por mi buscador.

Código (php) [Seleccionar]
<?php 
require_once 'Conexion.php';
@
$Nombre_web $_POST['Nombre'];
@
$URL_web $_POST['URL'];
@
$Descripcion_web $_POST['Descripcion'];
@
$NameEspecial $_POST['NombreCarEspecial'];
if(
$_POST)
{
   if(
$Nombre_web == "")
   {
       echo 
"No has ingresado el <b>nombre</b> de la pagina web a agregar";
   }
   elseif(
$URL_web == "")
   {
       echo 
"<br />No has ingresado la <b>URL</b> de la pagina web a agregar";
   }
   elseif(
$Descripcion_web == "")
   {
       echo 
"<br />No has ingresado la <b>descripcion</b> de la pagina web a agregar";
   }
  else
  {
   
$Guardando "INSERT INTO paginas (Nombre, NombreCarEspecial, Descripcion, URL) ".
     
"VALUES ('".$_POST['Nombre']."', '".$_POST['NombreCarEspecial']."', '".$_POST['Descripcion']."', '".$_POST['URL']."')";
   
   
mysql_query($Guardando);
   echo 
'Listo, amigo m&iacute;o<br />';
   echo 
'<a href="index.php">Volver</a> a al buscador y comprobar la busqueda';
   exit();}}
?>

<html>
    <body> 
    <head>
        <title>Agregar paginas web</title>
    </head>
<form method="POST" action="">
<h1>Agregar resultados a Máxima Search</h1>
    <input id="nombrepag-alt" type="text" placeholder="Nombre de la p&aacute;gina" name="Nombre" value="<?php echo $Nombre_web?>">
    <input id="caracterespecial-alt" type="text" placeholder="Caracteres especiales" name="NombreCarEspecial" value="<?php echo $NameEspecial?>">
    <br />
    <label>URL:</label>
    <br />
    <input type="text" name="URL" value="<?php echo "http://".$URL_web?>">
    <br />
    <label>Descripcion:</label>
    <br />
    <textarea name="Descripcion"><?php echo $Descripcion_web?></textarea>
    <br />
    <input type="submit" value="Registrar pagina web" />
   
</form>
    </body>
    </html>


Por último el archivo que realiza la conexión - conexión.php

Código (php) [Seleccionar]
<?php
$Conexion 
mysql_connect('localhost''root''') or die("No se pudo conectar con el servidor");
mysql_select_db('buscador'$Conexion) or die ("No se pudo seleccionar a la base de datos");
?>

LuffyFF

Lo que quieres se llama "scraping".

Pero al ser un entorno local y usar una base de datos, puedes programar las similitudes usando la base de datos, sin necesidad de scrapear la página.

Ahora si quieres scrappear la página, lo que tienes que hacer con PHP, es abrir la URL, guardarla en una variable, y luego analizar el html o contenido de la variable. Y aplicar distintas funciones de PHP para filtrar.

Si quieres facilitar las cosas puedes usar la clase Snoopy (para scrapear).

Igual, te recomiendo usar la base de datos y manipular la data desde ahí.

Saludos

xiruko

Hola, si estás haciendo este buscador por el mero hecho de aprender entonces ya te han comentado algunas soluciones. Ahora bien, si lo que quieres es añadir esa funcionalidad a tu página con las menores complicaciones posibles, por qué no personalizas un buscador de Google para que solo busque en tu dominio y lo metes en tu web?

https://cse.google.com/cse/create/new

Saludos!

MaximAlekz

Gracias LuffyFF, y xiruko.
Si, Luffy. Me diste una buena solución.
También tú xiru, pero es que quiero algo original, el buscador de Google ya es muy repetido :/


Gracias a todos por responder a mi tema.[/size]

mexuru

Tenga una dudas sobre to proyecto:

1) Todo lo esta probando en localhost?
2) Las paginas que vas a grabar en tu buscador tambien se alojan en tu servidor?

Saludos y quedo al pendiente de tu respuesta.

MaximAlekz