Búsquedas en Google Search desde PHP

Introducción.

Anoche se me ocurrieron algunos experimentos para hacer pero con varios de ellos terminé concluyendo que necesitaba hacer algunas búsquedas a través de Google Search para verificar si mis hipótesis se podían implementar o no.  Pensé que iba a ser muy fácil encontrar ejemplos de esto en PHP, sin embargo sólo pude encontrar un documento realmente interesante al respecto.  Resulta que casi toda la documentación hace referencia a Javascript en AJAX, mientras que los lenguajes no-Javascript como PHP o Flash deben hacerlo a través de REST.  Al final, mis ideas no resultaron; al parecer Google no genera la información que yo necesitaba en formato Google Search, tampoco en XML válido.  Sin embargo aprendí como utilizar Google Search desde PHP y terminé escribiendo una clase muy sencilla para encapsular su uso y una demostración de la misma.

Demostración.

Demostración de GoogleSearch 0.1
Demostración de GoogleSearch 0.1

GoogleSearch.class.php.

De manera muy general estos son los pasos que se deben realizar para ejecutar una búsqueda en GoogleSearch.

Crear una instancia de la clase GoogleSearch.

    $gs = new GoogleSearch();

Establecer la configuración de la búsqueda.

    $gs -> setKey('SU_PROPIA_LLAVE');
    $gs -> setSize('large');
    $gs -> setLang('es');
    $gs -> setReferrer('http://localhost');
    $registro = (isset($_GET['registro'])) ? filter_input(INPUT_GET, 'registro', FILTER_SANITIZE_SPECIAL_CHARS) : 0;
    $palabrasClave = (isset($_GET['palabrasClave'])) ? filter_input(INPUT_GET, 'palabrasClave', FILTER_SANITIZE_SPECIAL_CHARS) : '';

Solicitar la búsqueda.

    $gs -> fetch($palabrasClave, $registro);

Verificar si hubo éxito en la búsqueda.

    if($gs != null && $gs -> getResponseField('responseStatus') == 200) { ... }

Recorrer los registros obtenidos y mostrar su información.

                $length = $gs -> getResultsCount();

                for($i=0; $i<$length; $i++):

                    // Obtiene el iésimo resultado.

                    $result = $gs -> getResult($i);

                    // Muestra su información.
                ?>

                    <tr>
                        <td>
                            <a href='<?= GoogleSearch::getResultField($result, 'url'); ?>'>
                                <?= GoogleSearch::getResultField($result, 'title'); ?>
                            </a>
                            &nbsp;
                            <a href='<?= GoogleSearch::getResultField($result, 'url'); ?>' target='_blank'>
                                [<span style='font-size: 10px;'>Nueva ventana</span>]
                            </a>
                        </td>
                    </tr>
                    <tr>
                        <td class='campo_contenido'>
                            <?= GoogleSearch::getResultField($result, 'content'); ?>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <span class='verde'><?= GoogleSearch::getResultField($result, 'visibleUrl'); ?></span> -
                            <a href='<?= GoogleSearch::getResultField($result, 'cacheUrl'); ?>'>En caché</a>
                        </td>
                    </tr>
                    <tr>
                        <td>&nbsp;</td>
                    </tr>

                <?php endfor; ?>

Enlaces.

One thought on “Búsquedas en Google Search desde PHP”

Leave a Reply

Your email address will not be published. Required fields are marked *