Вы знаете, сколько данных вы качаете из сети каждый раз, чтобы увидеть вот эту страничку?

Если без браузерного кэша, то 600 килобайт (в gzip-e) и 38 запросов. Если с кэшем, то 70 килобайт и 7-8 запросов.

Вы знаете, что такое 600 килобайт? Это оба тома «Войны и мира» Льва Николаевича Толстого в том же gzip-e.
Конечно, отрадно, что Google Inc. пичкает нас таким количеством полезной информации. Про сами результаты поиска даже говорить не приходится — тут и картинки, и справочная информация из Википедии, и часы работы, и карта, и отзывы. Но иногда хочется чего-то простого и лаконичного. Без изнасилованных ссылок, без продаваемыхтоварищу майору сторонним маркетологам твоих веб кампейнов. Чтобы не тормозило на устаревших смартфонах и перегруженных мобильных сетях.
Можно, конечно, запроксировать запросы к поисковику через свой скрипт, с вивисекцией всего ненужного, но, к счастью, сам Google предлагает элегантное решение — доступ к своему Search API с выдачей чистых результатов в JSON или XML формате.
Вот часть JSON ответа для примера:
Чтобы получить доступ Google Custom Search API сперва нужно получить идентификатор своей поисковой системы. Для этого надо зарегистрировать систему пользоват��льского поиска на странице cse.google.com
Заходим на сайт, добавляем поисковую систему, указываем произвольный сайт, заходим в панель управления и получаем идентификатор поисковой системы.
Теперь надо получить токен для доступа к Custom Search API.
Заходим на console.cloud.google.com (предполагается, что аккаунты на обоих сайтах у вас уже есть), создаем проект, в левом боковом меню выбирает «API и сервисы» → «Панель управления» → «Включить API и сервисы», ищем там «Custom Search API», выбираем, включаем, затем создаем учетные данные — а именно, «Ключ API». Можно ограничить использование данного ключа только на своих IP, можно не делать этого.
Всё. Теперь мы можем отправлять запросы Google вот такой строкой:
Где {apikey} — токен доступа, {sid} — идентификатор поиска.
В ответ мы получим чистенький JSON.
C помощью простого php скрипта мы получаем наше View, даже с некоторым приближением к оригиналу. Первая страница:

Результаты поиска:

Первая страничка — 2Кб, с результатами поиска — 6Кб.
Дело тут не только в минимализме. Google в JSON ответе выдает кучу интересной информации и позволяет задать запрос с не меньшей кучей параметров. Подробнее тут. Можно даже сделать то, что не позволяет основная страница поисковика.
Есть, конечно, и минусы — ограничение в 100 запросов в день. Остальное за доллары.
Кстати, захостить наш php скриптик можно тоже на Google и тоже абсолютно бесплатно — на https://appengine.google.com. Правда, тут уже придется изрядно помучиться — FTP, web file manager и корневые директории сайта для Google рудименты. Поэтому придется превратить php скрипт в аппликейшн, засунуть его в энджин и с помощью специальной консоли задеплоить в облака.
Задача, на самом деле, не тривиальная. Не зря Google собирается вводить новую сертификацию — Google Certified User.

Если без браузерного кэша, то 600 килобайт (в gzip-e) и 38 запросов. Если с кэшем, то 70 килобайт и 7-8 запросов.

Вы знаете, что такое 600 килобайт? Это оба тома «Войны и мира» Льва Николаевича Толстого в том же gzip-e.
Конечно, отрадно, что Google Inc. пичкает нас таким количеством полезной информации. Про сами результаты поиска даже говорить не приходится — тут и картинки, и справочная информация из Википедии, и часы работы, и карта, и отзывы. Но иногда хочется чего-то простого и лаконичного. Без изнасилованных ссылок, без продаваемых
Можно, конечно, запроксировать запросы к поисковику через свой скрипт, с вивисекцией всего ненужного, но, к счастью, сам Google предлагает элегантное решение — доступ к своему Search API с выдачей чистых результатов в JSON или XML формате.
Вот часть JSON ответа для примера:
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"
}
]
}
},В этой статье мы напишем View для Google Custom Search, которое будет обладать мощью Google и удовлетворять наши приземленные желания.
Чтобы получить доступ Google Custom Search API сперва нужно получить идентификатор своей поисковой системы. Для этого надо зарегистрировать систему пользоват��льского поиска на странице cse.google.com
Заходим на сайт, добавляем поисковую систему, указываем произвольный сайт, заходим в панель управления и получаем идентификатор поисковой системы.
Теперь надо получить токен для доступа к Custom Search API.
Заходим на console.cloud.google.com (предполагается, что аккаунты на обоих сайтах у вас уже есть), создаем проект, в левом боковом меню выбирает «API и сервисы» → «Панель управления» → «Включить API и сервисы», ищем там «Custom Search API», выбираем, включаем, затем создаем учетные данные — а именно, «Ключ API». Можно ограничить использование данного ключа только на своих IP, можно не делать этого.
Всё. Теперь мы можем отправлять запросы Google вот такой строкой:
https://www.googleapis.com/customsearch/v1?key={apikey}&cx={sid}&q=queryГде {apikey} — токен доступа, {sid} — идентификатор поиска.
В ответ мы получим чистенький JSON.
C помощью простого php скрипта мы получаем наше View, даже с некоторым приближением к оригиналу. Первая страница:

Результаты поиска:

Первая страничка — 2Кб, с результатами поиска — 6Кб.
Дело тут не только в минимализме. Google в JSON ответе выдает кучу интересной информации и позволяет задать запрос с не меньшей кучей параметров. Подробнее тут. Можно даже сделать то, что не позволяет основная страница поисковика.
Есть, конечно, и минусы — ограничение в 100 запросов в день. Остальное за доллары.
Кстати, захостить наш php скриптик можно тоже на Google и тоже абсолютно бесплатно — на https://appengine.google.com. Правда, тут уже придется изрядно помучиться — FTP, web file manager и корневые директории сайта для Google рудименты. Поэтому придется превратить php скрипт в аппликейшн, засунуть его в энджин и с помощью специальной консоли задеплоить в облака.
Задача, на самом деле, не тривиальная. Не зря Google собирается вводить новую сертификацию — Google Certified User.
