Vue de recherche Google personnalisée

Savez-vous combien de données vous téléchargez du réseau à chaque fois pour voir cette page?



Si sans cache de navigateur, alors 600 kilo-octets (en gzip-e) et 38 requĂȘtes. Si avec un cache, alors 70 kilo-octets et 7 Ă  8 requĂȘtes.



Savez-vous ce que sont 600 kilo-octets? Ce sont les deux volumes de Guerre et Paix de LĂ©on TolstoĂŻ dans le mĂȘme gzip-e.

Bien sĂ»r, il est gratifiant que Google Inc. nous bourrant d'informations tellement utiles. Vous n'avez mĂȘme pas besoin de parler des rĂ©sultats de la recherche eux-mĂȘmes: voici des photos et des informations gĂ©nĂ©rales de WikipĂ©dia, les heures d'ouverture, une carte et des critiques. Mais parfois, vous voulez quelque chose de simple et de concis. Sans liens violĂ©s, sans vendre vos campagnes Web Ă  un camarade majeur Ă  des commerçants tiers. Pour ne pas ralentir sur les smartphones obsolĂštes et les rĂ©seaux mobiles encombrĂ©s.

Vous pouvez, bien sĂ»r, interroger le moteur de recherche via votre propre script, avec une vivisection de tout ce qui n'est pas nĂ©cessaire, mais, heureusement, Google lui-mĂȘme offre une solution Ă©lĂ©gante - l'accĂšs Ă  son API de recherche avec des rĂ©sultats purs au format JSON ou XML.

Voici une partie de la réponse JSON pour un exemple:

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" } ] } }, 


Dans cet article, nous écrirons une vue pour la recherche personnalisée Google, qui aura le pouvoir de Google et satisfera nos désirs banals.

Pour accéder à l'API Google Custom Search, vous devez d'abord obtenir l'identifiant de votre moteur de recherche. Pour ce faire, enregistrez un moteur de recherche personnalisé sur cse.google.com

Nous allons sur le site, ajoutons un moteur de recherche, spécifions un site arbitraire, allons dans le panneau de contrÎle et obtenons l'identifiant du moteur de recherche.

Vous devez maintenant obtenir un jeton pour accéder à l'API de recherche personnalisée.

Nous allons sur console.cloud.google.com (on suppose que vous avez dĂ©jĂ  des comptes sur les deux sites), crĂ©ons un projet, sĂ©lectionnez "API et services" → "Panneau de configuration" → "Activer API et services" dans le menu de gauche, recherchez il existe une «API de recherche personnalisĂ©e», sĂ©lectionnez, activez, puis crĂ©ez des informations d'identification, Ă  savoir «ClĂ© API». Vous pouvez restreindre l'utilisation de cette clĂ© uniquement Ă  votre IP, vous ne pouvez pas le faire.

C’est tout. Maintenant, nous pouvons envoyer des demandes Google avec cette ligne:

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

OĂč {apikey} est le jeton d'accĂšs, {sid} est l'identifiant de recherche.

En réponse, nous obtenons un JSON propre.

En utilisant un simple script php, nous obtenons notre vue, mĂȘme avec une certaine approximation de l'original. PremiĂšre page:

Résultats de la recherche:



La premiÚre page est de 2 Ko, avec des résultats de recherche - 6 Ko.

Le point ici n'est pas seulement le minimalisme. Google dans la rĂ©ponse JSON donne un tas d'informations intĂ©ressantes et vous permet de spĂ©cifier une demande avec au moins un tas de paramĂštres. Plus de dĂ©tails ici . Vous pouvez mĂȘme faire ce que la page principale du moteur de recherche ne permet pas.

Il y a bien sûr aussi des inconvénients - une limite de 100 demandes par jour. Le reste est en dollars.

Au fait, vous pouvez également héberger notre script php sur Google et également absolument gratuitement - à https://appengine.google.com . Certes, ici, vous avez déjà beaucoup à souffrir - FTP, gestionnaire de fichiers Web et les répertoires racine du site pour Google rudiments. Par conséquent, vous devrez transformer le script php en application, le mettre dans le moteur et utiliser la console spéciale pour le déployer dans les nuages.

En fait, la tùche n'est pas anodine. Pas étonnant que Google va introduire une nouvelle certification - Google Certified User.

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


All Articles