هل تعرف مقدار البيانات التي تقوم بتنزيلها من الشبكة في كل مرة لرؤية هذه الصفحة؟

إذا لم يكن هناك ذاكرة تخزين مؤقت للمتصفح ، فإن 600 كيلو بايت (في gzip-e) و 38 طلبًا. إذا كان مع ذاكرة التخزين المؤقت ، ثم 70 كيلو بايت و 7-8 طلبات.

هل تعرف ما هي 600 كيلو بايت؟ هذان مجلدان من حرب وسلام ليو تولستوي في نفس gzip-e.
بالطبع ، من دواعي السرور أن شركة Google Inc. حشو لنا بمعلومات كثيرة مفيدة. ليس عليك حتى التحدث عن نتائج البحث بأنفسهم - إليك الصور ومعلومات الخلفية من ويكيبيديا وساعات العمل وخريطة ومراجعات. لكن في بعض الأحيان تريد شيئًا بسيطًا وموجزًا. بدون روابط يتم اغتصابها ، وبدون بيع حملاتك على الويب
لرفيق رئيسي إلى جهات تسويق خارجية. عدم التباطؤ في الهواتف الذكية القديمة وشبكات الجوال المزدحمة.
يمكنك بالطبع الاستعلام عن محرك البحث من خلال النص البرمجي الخاص بك ، مع تقسيم كل شيء غير ضروري ، ولكن لحسن الحظ ، تقدم Google نفسها حلاً أنيقًا - الوصول إلى واجهة برمجة تطبيقات البحث مع نتائج خالصة بتنسيق JSON أو XML.
في ما يلي جزء من استجابة 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" } ] } },
في هذه المقالة ، سنكتب عرضًا لـ Google Custom Search ، والذي سيكون له قوة Google ويرضي رغباتنا الدنيوية.
للوصول إلى Google Custom Search API ، تحتاج أولاً إلى الحصول على معرف محرك البحث الخاص بك. للقيام بذلك ، قم بتسجيل محرك بحث مخصص على
cse.google.comنذهب إلى الموقع ، ونضيف محرك بحث ، ونحدد موقعًا عشوائيًا ، ونذهب إلى لوحة التحكم ونحصل على معرف محرك البحث.
تحتاج الآن إلى الحصول على رمز مميز للوصول إلى واجهة برمجة تطبيقات البحث المخصص.
ننتقل إلى
console.cloud.google.com (من المفترض أن لديك بالفعل حسابات على كلا الموقعين) ، وننشئ مشروعًا ، واختر "API والخدمات" → "لوحة التحكم" → "تمكين واجهات برمجة التطبيقات والخدمات" في القائمة اليسرى ، ابحث عن هناك "واجهة برمجة تطبيقات البحث المخصص" ، حدد وتمكين ثم قم بإنشاء بيانات الاعتماد - أي "مفتاح واجهة برمجة التطبيقات". يمكنك تقييد استخدام هذا المفتاح فقط على IP الخاص بك ، لا يمكنك القيام بذلك.
هذا كل شيء. الآن يمكننا إرسال طلبات Google باستخدام هذا الخط:
https://www.googleapis.com/customsearch/v1?key={apikey}&cx={sid}&q=query
حيث {apikey} هو رمز الدخول ، {sid} هو معرف البحث.
ردًا على ذلك ، نحصل على JSON نظيف.
باستخدام برنامج
نصي php بسيط ، نحصل على طريقة العرض الخاصة بنا ، حتى مع بعض التقريب إلى الأصل. الصفحة الأولى:

نتائج البحث:

الصفحة الأولى هي 2 كيلو بايت ، مع نتائج البحث - 6 كيلو بايت.
النقطة هنا ليست مجرد بساطتها. تقدم Google في رد JSON مجموعة من المعلومات المثيرة للاهتمام وتسمح لك بتحديد طلب يحتوي على الأقل على مجموعة من المعلمات. مزيد من التفاصيل
هنا . يمكنك حتى القيام بما لا تسمح به الصفحة الرئيسية لمحرك البحث.
هناك بالطبع أيضًا سلبيات - حد 100 طلب في اليوم. والباقي بالدولار.
بالمناسبة ، يمكنك أيضًا استضافة برنامج php النصي الخاص بنا على Google مجانًا أيضًا - على
https://appengine.google.com . صحيح ، هنا عليك بالفعل أن تعاني كثيرًا - FTP ومدير ملفات الويب والأدلة الجذرية للموقع لأساسيات Google. لذلك ، سيكون عليك تحويل البرنامج النصي php إلى تطبيق ، ووضعه في المحرك واستخدام وحدة التحكم الخاصة لنشره في السحب.
المهمة ، في الواقع ، ليست تافهة. لا عجب في أن تقدم Google شهادة جديدة - مستخدم معتمد من Google.