Поисковые роботы

Поисковый робот, он же паук (от англ. spider), или краулер (англ. crawler = «ползун») или просто бот — это программа поисковой системы, которая осуществляет сканирование сайтов. Считывание страниц поисковым ботом — первый этап в процессе индексирования сайта поисковой системой.

Что делает робот

Сканирование осуществляется точно так же, как загрузка документа в браузер: бот посылает HTTP-запрос GET, в котором указан полный адрес (URI) документа. Сервер отвечает на запрос так же, как и в случае обращения браузера: передает заголовок ответа (HTTP Response Header) с информацией о документе, а следом сам документ (обычно это HTML-страница, но могут быть и другие форматы документов). Робот получает документ, сохраняет его и запрашивает следующий URI. Задачей поискового бота является только получение страниц сайта и иных документов, доступных в домене. По данным из логов сервера несложно отследить и изучить поведение поисковых ботов. Единственное действие, которое бот может выполнять, кроме чтения документов — обработка исключений для роботов.

Чего не делает робот

Вопреки расхожему мнению, робот непосредственно не занимается какой-либо обработкой сканируемых документов. Он их только считывает и сохраняет, дальше их обработку осуществляют другие программы. Наглядное подтверждение можно получить, анализируя логи сайта, который индексируется в первый раз. При первом визите бот сначала запрашивает файл robots.txt, затем главную страницу сайта. То есть идет по единственной известной ему ссылке. На этом первый визит бота всегда и заканчивается. Через некоторое время (обычно на следующий день) бот запрашивает следующие страницы — по ссылкам, которые найдены на уже считанной странице. Дальше процесс продолжается в том же порядке: запрос страниц, ссылки на которые уже найдены — пауза на обработку считанных документов — следующий сеанс с запросом найденных ссылок.

Разбор страниц «на лету» означал бы значительно большую ресурсоемкость робота и потери времени. Каждый сервер сканирования запускает множество процессов-ботов параллельно. Они должны действовать максимально быстро, чтобы успеть считывать новые страницы и повторно перечитывать уже известные. Поэтому боты только считывают и сохраняют документы. Все, что они сохраняют, ставится в очередь на обработку (разборку кода). Найденные при обработке страниц ссылки ставятся в очередь заданий для ботов. Так и идет непрерывное сканирование всей сети. Единственное, что бот может и должен анализировать «на лету» — это файл robots.txt, чтобы не запрашивать адреса, которые в нем запрещены. При каждом сеансе сканирования сайта робот в первую очередь запрашивает этот файл, а уже после него — все стоящие в очереди на сканирование страницы.

Виды поисковых роботов

У каждой поисковой системы есть свой набор роботов для различных целей.
В основном они различаются по функциональному назначению, хотя границы очень условны, и каждый поисковик понимает их по-своему. Системам только для полнотекстового поиска вполне достаточно одного робота на все случаи жизни. У тех поисковиков, которые заняты не только текстом, боты разделяются как минимум на две категории: для текстов и рисунков. Существуют также отдельные боты, занятые специфическими видами контента — мобильным, блоговым, новостным, видео и т.д.

Роботы Google

Все роботы Google носят общее название Googlebot. Основной робот-индексатор «представляется» так:

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Этот бот занят сканированием HTML-страниц и прочих документов для основного поиска Google. Он же изредка считывает файлы CSS и JS — в основном это можно заметить на ранней стадии индексирования сайта, пока бот обходит сайт впервые. Принимаемые типы контента — все (Accept: */*).

Второй из основных ботов занят сканированием изображений с сайта. Он «представляется» просто:

Googlebot-Image/1.0

Еще в логах замечены как минимум три бота, занятых сбором контента для мобильной версии поиска. Поле User-agent всех трех оканчивается строкой:

(compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)

Перед этой строкой — модель мобильного телефона, с которой этот бот совместим. У замеченных ботов это модели телефонов Nokia, Samsung и iPhone. Принимаемые типы контента — все, но с указанием приоритетов:

Accept: application/vnd.wap.xhtml+xml,application/xhtml+xml;q=0.9,text/vnd.wap.wml;q=0.8,text/html;q=0.7,*/*;q=0.6

Роботы Яндекса

Из поисковиков, активно действующих в Рунете, самая большая коллекция ботов у Яндекса. В разделе помощи для вебмастеров можно найти официальный список всего паучьего личного состава. Приводить его здесь полностью нет смысла, поскольку в этом списке периодически происходят изменения.1)
Тем не менее, о самых важных для нас роботах Яндекса нужно упомянуть отдельно.
Основной индексирующий робот на текущий момент зовется

Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)

Ранее представлялся как

Yandex/1.01.001 (compatible; Win16; I)

Считывает HTML-страницы сайта и другие документы для индексирования. Список принимаемых медиатипов ранее был ограничен:

Accept: text/html, application/pdf;q=0.1, application/rtf;q=0.1, text/rtf;q=0.1, application/msword;q=0.1, application/x-shockwave-flash;q=0.1, application/vnd.ms-excel;q=0.1, application/vnd.ms-powerpoint;q=0.1

С 31 июля 2009 года в этом списке было замечено существенное расширение (число типов почти удвоилось), а с 10 ноября 2009 года список укоротился до */* (все типы).
Этого робота живо интересует вполне определенный набор языков: русский, несколько менее украинский и белорусский, еще чуть меньше английский и совсем мало — все остальные языки.

Accept-Language: ru, uk;q=0.8, be;q=0.8, en;q=0.7, *;q=0.01

Робот-сканер изображений несет в поле User-agent строку:

Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots)

Занимается сканированием графики разных форматов для поиска в картинках.

В отличие от Google, у Яндекса есть отдельные боты для обслуживания некоторых специальных функций общего поиска.
Робот-«зеркальщик»

Mozilla/5.0 (compatible; YandexBot/3.0; MirrorDetector; +http://yandex.com/bots)

Ничего особенно сложного не делает — периодически появляется и проверяет, совпадает ли главная страница сайта при обращении к домену с www. и без. Также проверяет параллельные домены-«зеркала» на совпадение. По-видимому, зеркалами и канонической формой доменов в Яндексе занимается отдельный программный комплекс, не связанный напрямую с индексированием. Иначе решительно нечем объяснить существование для этой цели отдельного бота.

Сборщик иконок favicon.ico

Mozilla/5.0 (compatible; YandexFavicons/1.0; +http://yandex.com/bots)

Периодически появляется и запрашивает иконку favicon.ico, которая потом появляется в поисковой выдаче рядом со ссылкой на сайт. По каким причинам эту обязанность не совмещает сборщик картинок, неизвестно. По-видимому, также имеет место отдельный программный комплекс.

Проверочный бот для новых сайтов, работает при добавлении в форму AddURL

Mozilla/5.0 (compatible; YandexWebmaster/2.0; +http://yandex.com/bots)

Этот бот проверяет отклик сайта, посылая запрос HEAD к корневому URL. Таким образом проверяется существование главной страницы в домене и анализируются HTTP-заголовки этой страницы. Также бот запрашивает файл robots.txt в корне сайта. Таким образом после подачи ссылки в AddURL определяется, что сайт существует и ни в robots.txt, ни в HTTP-заголовках не запрещен доступ к главной странице.

Робот Рамблера

В настоящее время уже не работает, поскольку Рамблер сейчас использует поиск Яндекса
Робота-индексатора Рамблера легко опознать в логах по полю User-agent

StackRambler/2.0 (MSIE incompatible)

По сравнению с «коллегами» из других поисковых систем этот бот кажется совсем простым: не указывает список медиатипов (соответственно, получает запрошенный документ любого типа), поле Accept-Language в запросе отсутствует, в запросах бота не встречено также поле If-Modified-since.

Робот Mail.Ru

Об этом роботе пока известно немного. Разработку собственного поиска портал Mail.Ru ведет уже давно, но все никак не соберется этот поиск запустить. Поэтому достоверно известно только наименование бота в User-agent — Mail.Ru/2.0 (ранее — Mail.Ru/1.0). Наименование бота для директив файла robors.txt нигде не публиковалось, есть предположение, что бота так и следует звать Mail.Ru.

Прочие роботы

Поиск в интернете, конечно, не ограничивается двумя поисковыми системами. Поэтому существуют и другие роботы — например робот Bing — поисковой системы от Microsoft и другие роботы. Так, в частности, в Китае есть национальная поисковая система Baidu — но ее робот вряд ли долетит до середины реки дойдет до русского сайта2).

Кроме того, в последнее время расплодилось много сервисов — в частности solomono — которые хоть и не являются поисковыми системами, но тоже сканирует сайты. Часто ценность передачи информации о сайте таким системам сомнительна, и поэтому их роботов можно запретить в файле .htaccess - и нагрузка на сервер поменьше будет.

1) Разумеется, в официальном списке списке не упомнянуты специальные боты Яндекса для выполнения разнообразных проверок на поисковый спам – о них планируется отдельная статья
2) Тем не менее, доходит, хотя вяло и неуверенно. Отчасти это объясняется деятельностью ссылочных спамеров, которым абсолютно все равно, где орудовать Хрумером — хоть в индокитайском нете, хоть в южноафриканском. А поскольку у этих деятелей принято «разбавлять» нужные им ссылки какими попало, бот Baidu вполне может забрести на любой сайт.
поисковый-робот.txt · создано: 2010/06/12 20:45 — Zanuda · Последние изменения: 2012/10/13 18:45 — Spinne
Наверх
Driven by DokuWiki