Vista de búsqueda personalizada de Google

¿Sabe cuántos datos descarga de la red cada vez que ve esta página?



Si no tiene un caché del navegador, 600 kilobytes (en gzip-e) y 38 solicitudes. Si con un caché, entonces 70 kilobytes y 7-8 solicitudes.



¿Sabes qué son 600 kilobytes? Ambos son volúmenes de La guerra y la paz de Leo Tolstoi en el mismo gzip-e.

Por supuesto, es gratificante que Google Inc. llenos de tanta información útil. Ni siquiera tiene que hablar sobre los resultados de la búsqueda: aquí hay imágenes e información de fondo de Wikipedia, y los horarios de apertura, y un mapa y comentarios. Pero a veces quieres algo simple y conciso. Sin enlaces violados, sin vender sus campañas web para camaradas importantes a vendedores externos. Para no reducir la velocidad en teléfonos inteligentes obsoletos y redes móviles congestionadas.

Por supuesto, puede consultar el motor de búsqueda a través de su propio script, con una vivisección de todo lo que es innecesario, pero, afortunadamente, Google mismo ofrece una solución elegante: acceso a su API de búsqueda con resultados puros en formato JSON o XML.

Aquí hay una parte de la respuesta JSON para un ejemplo:

Json
{ "kind": "customsearch#search", "url": { "type": "application/json", "template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json" }, "queries": { "request": [ { "title": "Google Custom Search - habr", "totalResults": "327000", "searchTerms": "habr", "count": 10, "startIndex": 1, "inputEncoding": "utf8", "outputEncoding": "utf8", "safe": "off", "cx": "0019687164026253:oi9ssr7ci6e" } ], "nextPage": [ { "title": "Google Custom Search - habr", "totalResults": "327000", "searchTerms": "habr", "count": 10, "startIndex": 11, "inputEncoding": "utf8", "outputEncoding": "utf8", "safe": "off", "cx": "00156687164026253:oi9ssr7ci6e" } ] }, "context": { "title": "v-gornom.ru" }, "searchInformation": { "searchTime": 0.531851, "formattedSearchTime": "0,53", "totalResults": "327000", "formattedTotalResults": "327 000" }, "items": [ { "kind": "customsearch#result", "title": "    / ", "htmlTitle": "    / \u003cb\u003e\u003c/b\u003e", "link": "https://habr.com/", "displayLink": "habr.com", "snippet": " –      ,    \n .  ,  , ...", "htmlSnippet": "\u003cb\u003e\u003c/b\u003e –      ,    \u003cbr\u003e\n .  ,  , ...", "cacheId": "Wg3CgcvcAxUJ", "formattedUrl": "https://habr.com/", "htmlFormattedUrl": "https://\u003cb\u003ehabr\u003c/b\u003e.com/", "pagemap": { "cse_thumbnail": [ { "width": "311", "height": "162", "src": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcT9MbmejtANdWSuXxH7pxKqWNFFRzPiTQuLmhWk5Tc5-Y-AgUgPrwEz0MV9" } ], "metatags": [ { "viewport": "width=1024", "fb:app_id": "444736788986613", "og:type": "website", "fb:pages": "472597926099084", "og:site_name": "", "og:image": "https://habr.com/images/habr.png", "og:image:width": "1200", "og:image:height": "628", "og:title": "    / ", "og:description": " –      ,     .  ,  ,      –       IT-  .", "yandex-verification": "71593b225aeafc4e", "referrer": "unsafe-url", "pocket-site-verification": "ed24b2b9721edf0a282c5b4a3232c4", "application-name": "", "msapplication-tilecolor": "#77a2b6", "theme-color": "#77a2b6" } ], "cse_image": [ { "src": "https://habr.com/images/habr.png" } ] } }, { "kind": "customsearch#result", "title": " — ", "htmlTitle": "\u003cb\u003e\u003c/b\u003e — ", "link": "https://ru.wikipedia.org/wiki/%D0%A5%D0%B0%D0%B1%D1%80", "displayLink": "ru.wikipedia.org", "snippet": " ( ) —  -   \n     ,   \n ...", "htmlSnippet": "\u003cb\u003e\u003c/b\u003e ( \u003cb\u003e\u003c/b\u003e) —  -   \u003cbr\u003e\n     ,   \u003cbr\u003e\n ...", "cacheId": "lB7MkUOxB7gJ", "formattedUrl": "https://ru.wikipedia.org/wiki/", "htmlFormattedUrl": "https://ru.wikipedia.org/wiki/\u003cb\u003e\u003c/b\u003e", "pagemap": { "cse_thumbnail": [ { "width": "220", "height": "130", "src": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcQqJU0itnwYGZAd6Z5aMJO0izPfF7cab6pc40vm0sujOP2dSgkP-UB0Je1T" } ], "metatags": [ { "referrer": "origin", "og:image": "https://upload.wikimedia.org/wikipedia/ru/7/7f/Habrahabr_logo.png" } ], "cse_image": [ { "src": "https://upload.wikimedia.org/wikipedia/ru/7/7f/Habrahabr_logo.png" } ] } }, 


En este artículo, escribiremos una Vista para la Búsqueda personalizada de Google, que tendrá el poder de Google y satisfará nuestros deseos mundanos.

Para acceder a la API de búsqueda personalizada de Google, primero debe obtener el identificador de su motor de búsqueda. Para hacer esto, registre un motor de búsqueda personalizado en cse.google.com

Vamos al sitio, agregamos un motor de búsqueda, especificamos un sitio arbitrario, vamos al panel de control y obtenemos el identificador del motor de búsqueda.

Ahora necesita obtener un token para acceder a la API de búsqueda personalizada.

Vamos a console.cloud.google.com (se supone que ya tiene cuentas en ambos sitios), creamos un proyecto, seleccionamos “API y servicios” → “Panel de control” → “Habilitar API y servicios” en el menú del lado izquierdo, busque hay "API de búsqueda personalizada", seleccione, habilite, luego cree credenciales, es decir, "Clave API". Puede restringir el uso de esta clave solo a su IP, no puede hacerlo.

Eso es todo. Ahora podemos enviar solicitudes de Google con esta línea:

https://www.googleapis.com/customsearch/v1?key={apikey}&cx={sid}&q=query

Donde {apikey} es el token de acceso, {sid} es el identificador de búsqueda.

En respuesta, obtenemos un JSON limpio.

Usando un script PHP simple, obtenemos nuestra Vista, incluso con alguna aproximación al original. Primera pagina:

Resultados de la búsqueda:



La primera página es de 2Kb, con resultados de búsqueda: 6Kb.

El punto aquí no es solo minimalismo. Google en la respuesta JSON proporciona información interesante y le permite especificar una solicitud con al menos una serie de parámetros. Más detalles aquí . Incluso puede hacer lo que la página principal del motor de búsqueda no permite.

Por supuesto, también hay inconvenientes: un límite de 100 solicitudes por día. El resto es por dólares.

Por cierto, también puedes alojar nuestro script php en Google y también de forma totalmente gratuita, en https://appengine.google.com . Es cierto, aquí ya tiene que sufrir mucho: FTP, administrador de archivos web y los directorios raíz del sitio para los rudimentos de Google. Por lo tanto, tendrá que convertir el script php en una aplicación, ponerlo en el motor y usar la consola especial para implementarlo en las nubes.

La tarea, de hecho, no es trivial. No es de extrañar que Google vaya a presentar una nueva certificación: Google Certified User.

Source: https://habr.com/ru/post/es421173/


All Articles