Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

google bot

Estas en el tema de google bot en el foro de Sistemas de gestión de contenidos en Foros del Web. Hola. Estoy buscando algun codigo hecho, se que existe :P Lo que quiero es un script en php que le pongo lo que quiero buscar ...
  #1 (permalink)  
Antiguo 29/09/2008, 16:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
google bot

Hola.
Estoy buscando algun codigo hecho, se que existe :P

Lo que quiero es un script en php que le pongo lo que quiero buscar y el script se encarga de buscarlo en google y de devolverme todas las URLs encontradas.
Existe un bot muy conocido hecho para IRC http://www.smartad.biz/muttok/ircbot/
Pero no es opensource y menos esta en php.

Alguien conoce algo hecho?

PD: Si conocen uno pero que no esta en php, diganmelo igual. Lo ideal es php, pero bueno..

el gran problema es que google no banee por las busquedas realizadas..... existen varios que ya encontre pero no funcionan.
lo mejor seria que corra del lado del cliente entonces xD
algo hecho en ajax verdad? moved? :D

Última edición por razer; 29/09/2008 a las 17:58
  #2 (permalink)  
Antiguo 29/09/2008, 19:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: google bot

Tema trasladado a Aplicaciones Prefabricadas.
  #3 (permalink)  
Antiguo 30/09/2008, 11:30
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 6 meses
Puntos: 4
Respuesta: google bot

http://code.google.com/edu/ajax/tuto...earch-api.html

yo implemente hace tiempo la api de google, pero hace como 3 anios atras y no me acuerdo ni que tecnologias use

espero que ese link sea lo que buscas
__________________
Ayuda!! firmar y compartir
No a la privatizacion de semillas http://www.thepetitionsite.com/1/no-...n-de-semillas/
Mas info: http://chilesintransgenicos.cl/
  #4 (permalink)  
Antiguo 30/09/2008, 13:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: google bot

Si, la vi.
Pero tengo 2 problemas:

1) Como hacer para que no imprima los 10 primeros sino todos.
Creo que hay que modificar esta linea:
Código:
gSearch.setResultSetSize(GSearch.LARGE_RESULTSET);
pero no se bien como seria. Osea, me gustaria que sea como google, que imprima tantas URLs y despues ponga paginas para ir a las siguientes, se podra? sino que imprima todos ahi y listo. Pero TODOS.


2) Lo implemente en mi pagina. Me registre y me hice una key y lo implemente. Ahora mi pregunta es, esto anda, porque lo acabo de probar, pero no hay ningun problema? digamos, no puedo ser baneado por muchas busquedas o algo por el estilo no? cualquiera puede buscar sin problemas como en google?


PD: Debido a que no se nada de AJAX ni JavaScript, perdon por preguntar todo, pero como podria sacar ese fondo negro? Y que cuando hagan un nuevo search no este el anterior sino el ultimo solo?

Este seria el codigo que copie, obviamente con mi key:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>Print Search Results</title>
  
  <!-- google search api -->
  <script src="http://www.google.com/uds/api?file=uds.js&v=1.0&key=internal-solution" type="text/javascript"></script>
  
  <!-- std apis -->
  <script src="http://www.google.com/uds/solutions/cscintro/stdlib.js" type="text/javascript"></script>

  <link href="http://www.google.com/uds/solutions/cscintro/stdlib.css" rel="stylesheet" type="text/css"/>
  
  <!-- base-styles for my demos -->
  <link href="base-styles.css" rel="stylesheet" type="text/css"/>

  <!-- main -->
  <script type="text/javascript">
    var gLog;
    var gSearch;

    function main() {
      gLog = new StdLog(document.getElementById("log"), "stdout");
      gSearch = new GwebSearch();
      gSearch.setResultSetSize(GSearch.LARGE_RESULTSET);
      gSearch.setSearchCompleteCallback(null, searchComplete, [null]);
    }

    function startSearch() {
      var input = document.getElementById("input");
      if (input.value) {
        gLog.printLine("Search Results for: " + input.value);
        gSearch.execute(input.value);
      } else {
        gLog.printLine("*** Error. Enter a Search Term ***");
      }
    }

    function searchComplete() {
      if (gSearch.results && gSearch.results.length) {
        var i;
        for (i=0; i < gSearch.results.length; i++ ) {
          var result = gSearch.results[i];
          gLog.printLine(result.title + " @ " + result.url);
        }
        gLog.printLine("");
      } else {
        gLog.printLine("*** Error. No Search Results ***");
      }
    }

  </script>
</head>
<body onload="main()">
  <h1>Print Search Results</h1> 
  <div class="input-box">

    <input type="text" id="input"/> <input type="button" value="search" onclick="startSearch()"/>
  </div>
  <div id="log">Loading...</div>
</body>
</html>
salu2

Última edición por razer; 30/09/2008 a las 13:36
  #5 (permalink)  
Antiguo 30/09/2008, 17:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: google bot

Si no se pueden imprimir mas de 10 resultados estamos mal :S
yo queria todos :(

algun opensource?

Última edición por razer; 30/09/2008 a las 20:45
  #6 (permalink)  
Antiguo 02/10/2008, 13:24
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 6 meses
Puntos: 4
Respuesta: google bot

Cita:
Iniciado por razer Ver Mensaje
Si no se pueden imprimir mas de 10 resultados estamos mal :S
yo queria todos :(

algun opensource?
Si me acuerdo de eso, eso rompe el derecho de ocupar la api, y no se si exista una version pagada.

Puedes tratar de hackiar la api
se me ocurren dos formas sin revisar nada del codigo
1. puedes hacer una funcion que guarda en una matriz los resultados de 10 en 10 hasta todo los que quieras, con un ciclo for y la matriz la muestars a gusto tuyo, yo hice esto con la antigua implementacion pero se nota la lentitud, incluso pense que era mas facil hacer un file_get_contents de la url con la busqueda y sacar con expresion resultar los resultados, de todas maneras curl es mucho mas manejable cuando tienes que emular cookies https u otras cosas.

2. podrias llamar con ajax en cascada los resultados que vienen, incluso con unos estupidos iframes, creo que seria sencillo.
__________________
Ayuda!! firmar y compartir
No a la privatizacion de semillas http://www.thepetitionsite.com/1/no-...n-de-semillas/
Mas info: http://chilesintransgenicos.cl/
  #7 (permalink)  
Antiguo 05/10/2008, 18:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: google bot

Si igual la idea no era hacer algo ilegal :)
edit: Lo solucione :D

Última edición por razer; 06/10/2008 a las 17:24
  #8 (permalink)  
Antiguo 07/10/2008, 02:51
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 6 meses
Puntos: 4
Respuesta: google bot

Cita:
Iniciado por razer Ver Mensaje
Si igual la idea no era hacer algo ilegal :)
edit: Lo solucione :D
Seria mas interesante si pusieras como lo solucionaste asi le sirve a mas foreros
__________________
Ayuda!! firmar y compartir
No a la privatizacion de semillas http://www.thepetitionsite.com/1/no-...n-de-semillas/
Mas info: http://chilesintransgenicos.cl/
  #9 (permalink)  
Antiguo 07/10/2008, 14:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: google bot

Si, lo iba a poner, sry :)
Llame a main(); denuevo de manera que cada vez que se busque se haga un "clear" de lo anterior antes del nuevo search, asi queda limpio.

Igual sigo medio confundido.....
Lei que esta api de ajax mostraba hasta 32 resultados, puede ser?
o sera solo local?
yo busco en google no localmente en mi pagina.

Primero leo que se puede hasta 8, luego hasta 32, ando confundido y busco en google y sigo sin poder resolver mi duda.
La pagina que decia que se podian mostrar hasta 32 probe el ejemplo y no funcionaba. Me funciona solo el de 8.

Remsankar, sabes como averiguar o de hecho ya sabes cual es el actual maximo de resultados a mostrar? porque quiza se modifico por parte de google. Con ejemplos mejor, la verdad ponerme a aprender la API y sus metodos no me interesa, solo queria incluir lo basico: un buscador.

Entonces, cual es el maximo de resultados a mostrar con AJAX. Y otra duda que no pude resolver es si las API estas estan para otro lenguaje aparte de AJAX. En un momento lei que habia una tecnologia SOAP de lo cual se podia hacer algo en PHP pero por lo que leo actualmente no se pueden sacar mas keys para SOAP. Sabiendo esto, AJAX es la unica opcion? No hay ningun lenguaje que corra del lado del servidor con querys ilimitados?

Si me sabes responder estas dudas te agradeceria, ya estoy cansado de buscar y leer distintas teorias :X

EDIT: Pude hacer funcionar un ejemplo que estaba en la pagina de ejemplos (http://www.google.com/uds/samples/ap...elloworld.html), pero me gustaba mas el ejemplo que postee antes que mostraba 8. Porque en ese lo customizaba yo todo :S existira asi? x ej: la palabra web no quiero que este la opcion de ver 1 resultado, 2, etc..... ademas lo que escriben en el edit lo quiero controlar..... el paginado tmb....etc etc.... antes con el ejemplo de 8 podia..... ahora no le veo opcion
osea, si yo quedria usar el codigo anterior que postie ahi arriba hay que solo cambiar esta linea:
gSearch.setResultSetSize(GSearch.LARGE_RESULTSET);

pero hay SMALL o LARGE nada mas, y representan 4 o 8 resultados. :S
como hacer para que en ese ejemplo muestre 32.

Última edición por razer; 07/10/2008 a las 15:33
  #10 (permalink)  
Antiguo 07/10/2008, 15:53
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: google bot

Una persona pregunto lo mismo que yo:
http://groups.google.com.pr/group/Go...04b548dc3d953f

Probe el codigo que le pasaron, que supuestamente muestra hasta 32 resultados y esta todo customizable (creo, segun entendi), pero se queda en el Loading...

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-
microsoft-com:vml">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>Print Search Results</title>

  <!-- google search api -->
  <script src="http://www.google.com/uds/api?
file=uds.js&v=1.0&key=internal-solution" type="text/javascript"></
script>

  <!-- std apis -->
  <script src="http://www.google.com/uds/solutions/cscintro/stdlib.js"
type="text/javascript"></script>
        <link href="http://www.google.com/uds/solutions/cscintro/stdlib.css"
rel="stylesheet" type="text/css"/>

  <!-- base-styles for my demos -->
  <link href="base-styles.css" rel="stylesheet" type="text/css"/>

  <!-- main -->
  <script type="text/javascript">
    var gLog;
    var gSearch;

    function main() {
      gLog = new StdLog(document.getElementById("log"), "stdout");
      gSearch = new GwebSearch();
      gSearch.setResultSetSize(GSearch.LARGE_RESULTSET);
      gSearch.setSearchCompleteCallback(null, searchComplete, [null]);
    }

    function startSearch() {
      var input = document.getElementById("input");
      if (input.value) {
        gLog.printLine("Search Results for: " + input.value);
        gSearch.execute(input.value);
      } else {
        gLog.printLine("*** Error. Enter a Search Term ***");
      }
    }

    function methodClosure(object, method, opt_argArray) {
      return function() {
        return method.apply(object, opt_argArray);
      }
    }

    function searchComplete() {
                        gLog.clear();
      if (gSearch.results && gSearch.results.length) {
        var i;
        for (i=0; i < gSearch.results.length; i++ ) {
          var result = gSearch.results[i];
          gLog.printLine("Found: " + gSearch.results.length +
"matching results");
          gLog.printLine(result.title + " @ " + result.url);
        }
        gLog.printLine("");
      } else {
        gLog.printLine("*** Error. No Search Results ***");
      }

                        document.getElementById("cursor").innerHTML = '';
                        if (gSearch.cursor) {
        var cursorNode = createDiv(null, "gsc-cursor");
        for (var i=0; i<gSearch.cursor.pages.length; i++) {
          var className = "gsc-cursor-page";
          if (i == gSearch.cursor.currentPageIndex) {
            className = className + " gsc-cursor-current-page";
          }
          var pageNode = createDiv(gSearch.cursor.pages[i].label,
className);
          pageNode.onclick = methodClosure(gSearch, gotoPage,
                                           [gSearch, i]);
          cursorNode.appendChild(pageNode);
        }
        document.getElementById("cursor").appendChild(cursorNode);
        var more = createLink(gSearch.cursor.moreResultsUrl,
                              GSearch.strings["more-results"] +
"&nbsp;&raquo;",
                              GSearch.LINK_TARGET_SELF,
                              "gsc-trailing-more-results");
        document.getElementById("cursor").appendChild(more);
      }
    }

    function createLink(href, opt_text, opt_target, opt_className,
opt_divwrap) {
      var el = document.createElement("a");
      el.href = href;
      if (opt_text) {
        el.innerHTML = opt_text;
      }
      if (opt_className) {
        el.className = opt_className;
      }
      if (opt_target) {
        el.target = opt_target;
      }
      if (opt_divwrap) {
        var div = this.createDiv(null, opt_className);
        div.appendChild(el);
        el = div;
      }
      return el;
    }

    function gotoPage(searcher, page) {
      searcher.gotoPage(page);
    }

    function createDiv(opt_text, opt_className) {
      var el = document.createElement("div");
      if (opt_text) {
        el.innerHTML = opt_text;
      }
      if (opt_className) { el.className = opt_className; }
      return el;
    }
  </script>
</head>
<body onload="main()">
  <h1>Print Search Results</h1>
  <div class="input-box">

    <input type="text" id="input"/> <input type="button"
value="search" onclick="startSearch()"/>
  </div>
  <div id="log">Loading...</div>
        <div id="cursor"></div>
</body>
</html>
(y ya probe poniendo mi key)
  #11 (permalink)  
Antiguo 07/10/2008, 18:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: google bot

Tambien vi este: http://www.google.com/uds/samples/ap...elloworld.html

Código:
<!-- 
  Copyright (c) 2008 Google Inc.
  
  You are free to copy and use this sample.
  License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Hello World - Google AJAX Search API Sample</title>
    
    <style type="text/css">

    body {
      background-color: white;
      color: black;
      font-family: Arial, sans-serif;
      font-size : 13px;
      margin: 15px;
    }

    #searchcontrol .gsc-control { width : 400px; }


    </style>
    <!-- Replace with http://www.google.com/jsapi -->
    <script src="../../../jsapi" type="text/javascript"></script>

    <script type="text/javascript">
    //<![CDATA[
    
    google.load('search', '1.0');

    function OnLoad() {
      // Create a search control
      var searchControl = new google.search.SearchControl();

      // Add in a full set of searchers
      var localSearch = new google.search.LocalSearch();
      searchControl.addSearcher(localSearch);
      searchControl.addSearcher(new google.search.WebSearch());
      searchControl.addSearcher(new google.search.VideoSearch());
      searchControl.addSearcher(new google.search.BlogSearch());
      searchControl.addSearcher(new google.search.NewsSearch());
      searchControl.addSearcher(new google.search.ImageSearch());
      searchControl.addSearcher(new google.search.BookSearch());
      searchControl.addSearcher(new google.search.PatentSearch());

      // Set the Local Search center point
      localSearch.setCenterPoint("New York, NY");

      // tell the searcher to draw itself and tell it where to attach
      searchControl.draw(document.getElementById("searchcontrol"));

      // execute an inital search
      searchControl.execute("VW GTI");
    }
    
    google.setOnLoadCallback(OnLoad, true);

    //]]>
    </script>
  </head>
  <body>
    <div id="searchcontrol">Loading</div>
  </body>
</html>
Solucionado. Use ese :)

Última edición por razer; 07/10/2008 a las 20:48
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 23:40.