Wissen Sie, wie viele Daten Sie jedes Mal aus dem Netzwerk herunterladen, um diese Seite zu sehen?

Wenn ohne Browser-Cache, dann 600 Kilobyte (in gzip-e) und 38 Anfragen. Wenn mit einem Cache, dann 70 Kilobyte und 7-8 Anfragen.

Wissen Sie, was 600 Kilobyte sind? Dies sind beide Bände von Leo Tolstois Krieg und Frieden im selben gzip-e.
Es ist natürlich erfreulich, dass Google Inc. Füllen Sie uns mit so vielen nützlichen Informationen. Sie müssen nicht einmal über die Suchergebnisse selbst sprechen. Hier finden Sie Bilder, Hintergrundinformationen aus Wikipedia, Öffnungszeiten, eine Karte und Rezensionen. Aber manchmal möchten Sie etwas Einfaches und Prägnantes. Ohne vergewaltigte Links, ohne Ihre Webkampagnen
an Genossen an Drittanbieter zu verkaufen. Um veraltete Smartphones und überlastete Mobilfunknetze nicht zu verlangsamen.
Sie können die Suchmaschine natürlich über Ihr eigenes Skript abfragen und dabei alles Unnötige überprüfen. Glücklicherweise bietet Google selbst eine elegante Lösung: Zugriff auf die Such-API mit reinen Ergebnissen im JSON- oder XML-Format.
Hier ist ein Teil der JSON-Antwort für ein Beispiel:
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" } ] } },
In diesem Artikel werden wir eine Ansicht für die benutzerdefinierte Google-Suche schreiben, die die Macht von Google hat und unsere weltlichen Wünsche erfüllt.
Um auf die benutzerdefinierte Such-API von Google zugreifen zu können, müssen Sie zunächst die Kennung Ihrer Suchmaschine abrufen. Registrieren Sie dazu eine benutzerdefinierte Suchmaschine unter
cse.google.comWir gehen zur Site, fügen eine Suchmaschine hinzu, geben eine beliebige Site an, gehen zum Control Panel und erhalten die Kennung der Suchmaschine.
Jetzt benötigen Sie ein Token, um auf die benutzerdefinierte Such-API zugreifen zu können.
Wir gehen zu
console.cloud.google.com (es wird davon ausgegangen, dass Sie bereits Konten auf beiden Websites haben), erstellen ein Projekt, wählen im linken Menü "API und Dienste" → "Systemsteuerung" → "APIs und Dienste aktivieren" aus und suchen nach Es gibt "Benutzerdefinierte Such-API". Wählen Sie diese aus, aktivieren Sie sie und erstellen Sie Anmeldeinformationen - nämlich "API-Schlüssel". Sie können die Verwendung dieses Schlüssels nur auf Ihre IP beschränken, dies ist jedoch nicht möglich.
Das ist alles. Jetzt können wir Google-Anfragen mit dieser Zeile senden:
https://www.googleapis.com/customsearch/v1?key={apikey}&cx={sid}&q=query
Wo {apikey} das Zugriffstoken ist, ist {sid} die Suchkennung.
Als Antwort erhalten wir einen sauberen JSON.
Mit einem
einfachen PHP-Skript erhalten wir unsere Ansicht, auch wenn wir uns dem Original annähern. Erste Seite:

Suchergebnisse:

Die erste Seite ist 2 KB groß, mit Suchergebnissen - 6 KB.
Hier geht es nicht nur um Minimalismus. Google in der JSON-Antwort enthält eine Reihe interessanter Informationen und ermöglicht es Ihnen, eine Anfrage mit mindestens einer Reihe von Parametern anzugeben. Weitere Details
hier . Sie können sogar das tun, was die Hauptseite der Suchmaschine nicht zulässt.
Natürlich gibt es auch Nachteile - ein Limit von 100 Anfragen pro Tag. Der Rest ist für Dollar.
Übrigens können Sie unser PHP-Skript auch bei Google und absolut kostenlos hosten - unter
https://appengine.google.com . Richtig, hier müssen Sie bereits viel leiden - FTP, Web File Manager und die Stammverzeichnisse der Website für Google-Grundlagen. Daher müssen Sie das PHP-Skript in eine Anwendung umwandeln, es in die Engine einfügen und die spezielle Konsole verwenden, um es in den Clouds bereitzustellen.
Die Aufgabe ist in der Tat nicht trivial. Kein Wunder, dass Google eine neue Zertifizierung einführt - Google Certified User.