Visualização personalizada da Pesquisa do Google

Você sabe quantos dados você baixa da rede cada vez para ver esta página?



Se não houver um cache do navegador, 600 kilobytes (em gzip-e) e 38 solicitações. Se estiver com um cache, 70 kilobytes e 7-8 solicitações.



Você sabe o que são 600 kilobytes? Estes são os dois volumes da Guerra e Paz de Leo Tolstoi no mesmo gzip-e.

Obviamente, é gratificante que o Google Inc. nos enchendo de tanta informação útil. Você nem precisa falar sobre os resultados da pesquisa. Aqui estão fotos e informações básicas da Wikipedia, horário de funcionamento, mapa e resenhas. Mas às vezes você quer algo simples e conciso. Sem links violados, sem vender suas campanhas na web para camaradas importantes para profissionais de marketing de terceiros. Para não desacelerar em smartphones desatualizados e redes móveis congestionadas.

Obviamente, você pode consultar o mecanismo de pesquisa usando seu próprio script, com uma visualização de tudo o que não é necessário, mas, felizmente, o próprio Google oferece uma solução elegante - acesso à API de pesquisa com resultados puros no formato JSON ou XML.

Aqui está uma parte da resposta JSON para um exemplo:

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


Neste artigo, escreveremos uma Visualização da Pesquisa personalizada do Google, que terá o poder do Google e satisfará nossos desejos mundanos.

Para acessar a API de pesquisa personalizada do Google, primeiro você precisa obter o identificador do seu mecanismo de pesquisa. Para fazer isso, registre um mecanismo de pesquisa personalizado em cse.google.com

Vamos ao site, adicionamos um mecanismo de pesquisa, especificamos um site arbitrário, vamos ao painel de controle e obtemos o identificador do mecanismo de pesquisa.

Agora você precisa obter um token para acessar a API de pesquisa personalizada.

Vamos para console.cloud.google.com (supõe-se que você já tenha contas nos dois sites), criamos um projeto, selecione "API e serviços" → "Painel de controle" → "Ativar API e serviços" no menu à esquerda, procure existe uma "API de pesquisa personalizada", selecione, ative e crie credenciais - ou seja, "Chave da API". Você pode restringir o uso dessa chave apenas ao seu IP, não pode fazer isso.

Só isso. Agora podemos enviar solicitações do Google com esta linha:

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

Onde {apikey} é o token de acesso, {sid} é o identificador de pesquisa.

Em resposta, obtemos um JSON limpo.

Usando um script php simples, obtemos nosso View, mesmo com alguma aproximação ao original. Primeira página:

Resultados da Pesquisa:



A primeira página é 2Kb, com resultados de pesquisa - 6Kb.

O ponto aqui não é apenas minimalismo. O Google na resposta JSON fornece várias informações interessantes e permite especificar uma solicitação com pelo menos vários parâmetros. Mais detalhes aqui . Você pode até fazer o que a página principal do mecanismo de pesquisa não permite.

Obviamente, também existem contras - um limite de 100 solicitações por dia. O resto é por dólares.

A propósito, você também pode hospedar nosso script php no Google e também absolutamente de graça - em https://appengine.google.com . É verdade que aqui você já tem que sofrer muito - FTP, gerenciador de arquivos da web e os diretórios raiz do site por rudimentos do Google. Portanto, você terá que transformar o script php em aplicativo, colocá-lo no mecanismo e usar o console especial para implementá-lo nas nuvens.

A tarefa, de fato, não é trivial. Não é de admirar que o Google introduza uma nova certificação - Usuário certificado do Google.

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


All Articles