Autor
|
Tema: Obtener informacion de una pagina con php (Leído 4,431 veces)
|
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 Gracias.
|
|
|
En línea
|
|
|
|
#!drvy
|
Sin codigo ni mas detalles es imposible ayudarte. Lo que pides no es precisamente algo "simple".
Saludos
|
|
|
En línea
|
|
|
|
MaximAlekz
|
Bueno, es por eso que he venido a este foro. Este foro no es para cosas "sencillas". Gracias por responder
|
|
|
En línea
|
|
|
|
MaximAlekz
|
Ahora bien, aquí está mi código. Index.php<?php require_once 'Conexion.php'; @$Buscar = $_GET['Buscar']; ?> <html> <head> <title><?php echo $Buscar; ?> - Má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áxima Search</a></h1></td> </tr> <tr> <td><div id="searchbox"><input autocomplete="off" id="search" type="text" name="Buscar" placeholder="Qué 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ú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%' "; 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"; } } { $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.<?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']."')"; echo 'Listo, amigo mío<br />'; echo '<a href="index.php">Volver</a> a al buscador y comprobar la busqueda'; ?> <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á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<?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"); ?>
|
|
|
En línea
|
|
|
|
LuffyFF
Desconectado
Mensajes: 754
Final Fantasy XIII
|
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
|
|
|
En línea
|
|
|
|
xiruko
Desconectado
Mensajes: 438
|
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/newSaludos!
|
|
|
En línea
|
|
|
|
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]
|
|
|
En línea
|
|
|
|
mexuru
Desconectado
Mensajes: 1
|
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.
|
|
|
En línea
|
|
|
|
|
|
|