Web-delo
Главная | Заказать веб-сайт | Заказать мобильные мелодии | Обмен ссылками | Почта  
Создай свой сайт
- Электронные учебники
- Программы
- Полезные статьи
- Фоны, банеры, ...
Мобильный телефон
- Мелодии для мобильного
Услуги
- Готовый сайт за 4000 руб.
- Магазин цифровых товаров
        ( все за 50 центов)      
 
 
Rambler's Top100

Полезные статьи

Ползающие по Web
Руководство по роботам, "паукам" и другим теневым обитателям Web.

Если у вас есть узел в сети World-Wide Web, вы, вероятно, не раз досадовали на некоего пользователя, который в быстром темпе загружает к себе один за другим десятки, а то и сотни документов. Видимо, это тот случай, когда ваш узел "посетила" программа, называемая любителями "путешествий" по Web роботом, "пауком", странником, скороходом или Web-агентом.

Роботы - это автоматизированные программы, а "пауки" (spiders) - один из видов роботов - непрерывно "ползают" по Web, "перепрыгивая" с одной страницы на другую, с целью сбора статистических данных о самой Web либо формирования централизованной базы данных с индексами содержимого Web. Такие популярные поисковые узлы Internet, как Alta Vista, Lycos, OpenText, WebCrawler и др., используют пауков для создания оглавлений Web. Это облегчает пользователям поиск всех Web-страниц, содержащих информацию, скажем, об алгоритме MD5 Message Digest Algorithm или о состоянии туризма на Канарских островах.

Пауки работают в автоматическом режиме, и один-единственный робот может за несколько минут выполнить работу, на которую человеку потребуется несколько часов. Согласно данным фирмы Digital Equipment Corp., Web-мастера которой обслуживают узел Alta Vista, модуль Scooter индексирует около 2,5 млн. Web-страниц в день. Примите во внимание эти цифры и популярность поисковых узлов Internet, и вам станет понятно, почему столь притягательны роботы.

Пауки оказывают пользователям Internet ценную услугу; без них было бы практически невозможно формировать и оперативно обновлять функциональные индексы Web. Но и у них есть свои недостатки. Они увеличивают сетевой трафик, а плохо продуманный паук может настолько интенсивно и часто обращаться к Web-узлу, что будет затруднять доступ обычным программам. К тому же индексирующие роботы, как правило, не отличают постоянных Web-страниц от временных, разве что в посещаемых ими узлах предусмотрены специальные средства для таких программ. В результате возникающий в Web-индексах беспорядок затрудняет поиск действительно необходимой вам информации.

Короче говоря, роботы - это и благодать и проклятие. Но ведь они реально существуют в Internet, и с каждым днем число их растет. Давайте же заглянем за кулисы и посмотрим, какие функции и как они выполняют и, главное, что могут сделать администраторы узлов для того, чтобы их узлы стали более дружественными по отношению к роботам. Посмотрим также, куда можно обратиться за информацией о разработке "благовоспитанных" роботов.

Как работают роботы

Чтобы понять, как действуют роботы, полезно сперва разобраться в том, как работает браузер. В сущности браузер - это просто программа, которая в ответ на обращение пользователя посылает по Internet http-команды (HyperText Transport Protocol - протокол передачи гипертекстовых сообщений) для извлечения и вывода на экран компьютера Web-страниц. А Web-страницы в действительности представляют собой HTML-файлы (HyperText Markup Language - гипертекстовый язык описания документов) с текстом, программами форматирования и другой определяющей содержание информацией. К "другой информации" обычно относятся адреса файлов с растровыми изображениями и гипертекстовые связи с другими HTML-страницами.

Щелчок на гипертекстовой связи с удаленной Web-страницей инициирует ряд действий. Сначала браузер извлекает с текущей страницы адрес URL (Uniform Resourse Locator - унифицированный указатель ресурса) местонахождения страницы. Затем он устанавливает связь с удаленным сервером, выдает для извлечения HTML-документа http-команду GET и выводит этот документ на экран. Обычно сначала на экране появляется текст документа. Изображения хранятся под своими собственными URL, так что их можно загрузить отдельно. Связи с ними записаны в тексте документа, поэтому браузеру известно, где их найти и куда отправить.

Web-робот - это браузер с "автопилотом". Не щелчок пользователя на гипертекстовой связи, а робот загружает из сети Web-страницу и просматривает ее, чтобы обнаружить связи с другими узлами. Затем он извлекает URL и совершает по этому адресу "прыжок". Оттуда он "переносится" к другому Web-узлу и начинает описанный процесс сначала. Когда браузеру попадается узел, не содержащий связей, он возвращается назад на одну или две ступени и "перепрыгивает" по адресу, указанному в одной из обнаруженных ранее связей. Запущенный однажды робот, в работе которого используется простой рекурсивный алгоритм навигации, может покрывать огромные расстояния в киберпространстве, и, поскольку в Web ежедневно происходят изменения, маршрут робота тоже ежедневно меняется. По сути перемещение робота по Web напоминает ползание паука по паутине. Все, что ему для этого надо, - точка для старта.

Посмотрим, что же делает робот с загруженными страницами? Это зависит в первую очередь от того, для чего он был создан. В роботах, предназначенных для составления оглавлений Web, обычно применяются собственные алгоритмы подготовки обзоров по документам, входящим в громадные базы данных Web-узлов, и их оглавлений. Они также встраивают в URL индексы в соответствии со словами и фразами, обнаруженными в HTML-документах. Таким образом любой пользователь с помощью поискового узла может быстро получить список всех Web-страниц, содержащих слово, скажем "Cozumel". Одной из причин почему индексирующие роботы с огромной скоростью могут просматривать множество узлов, состоит в том, что они затрагивают лишь HTML-файлы. Им не приходится загружать изображения, поскольку в поисковых базах данных содержатся только индексы текста.

Однако индексирование Web-страниц - это не единственное назначение роботов. Цель некоторых из них - обнаружение связей с уже несуществующими страницами. Другие "бродят" по Web, собирая статистическую информацию о ее использовании, например определяют, какие узлы наиболее популярны, путем подсчета числа ссылок на них в других Web-страницах или регистрируют число Web-страниц для оценки роста системы.

Нетрудно понять, почему роботы столь сильно перегружают ресурсы сервера. При обращении робота к какому-то узлу за короткий период может быть запрошено огромное количество документов, что эквивалентно одновременному подключению к узлу сотни или более пользователей. Некоторые серверы могут обработать такое громадное количество запросов, а другим это не по плечу. Вот одна из причин появления ряда информационных протоколов, описывающих поведение "благовоспитанных" роботов. Например, такой робот будет отправлять запросы не чаще, чем раз в минуту, что позволит избежать перегрузок сервера. Кроме того, он будет иметь способность автоматической идентификации, для того чтобы при возникновении трудностей его владелец мог установить с ним связь и выполнить проверку указателей URL, по которым происходят обращения, для ограничения доступа к узлу.

Стандарты запретов для роботов

На заре Web, в 1994 г., столкнувшись с проблемами, обусловленными работой плохо "сконструированных" роботов, группа пользователей Internet в сеансах связи по электронной почте разработала неофициальный стандарт, известный как Standart for Robot Exclusion (SRE). Этот стандарт описывает протокол, позволяющий администраторам узлов запретить роботам доступ к указанным областям их Web-узлов.

Одно из весьма полезных применений стандарта SRE - можно предотвратить проводимое роботами поисковых узлов индексирование временных HTML-документов, которых, возможно, уже не будет завтра в этот час. Многие Web-узлы (особенно поисковые) для удовлетворения поступающих от пользователей запросов генерируют HTML-документы на ходу. Но как только необходимость в этих документах отпадает, они удаляются. Очевидно, что наличие таких страниц в оглавлении Web вряд ли кому-то нужно. Еще один вариант использования SRE - можно ограничить роботам доступ к тем страницам, которые находятся в процессе разработки, или вообще запретить доступ к вашему узлу с помощью соответствующих команд.

Применение SRE для того, чтобы запретить или ограничить роботам доступ к узлу Web, не отличается сложностью. Вы должны лишь создать на Web-сервере файл, доступный HTTP, и присвоить ему локальный URL-указатель /robots.txt. Это текстовый файл, содержащий команды на английском языке, в которых четко указана стратегия доступа для роботов. Роботы, соответствующие SRE-стандартам, при первой связи с сервером отыскивают этот файл и жестко следуют изложенным в нем рекомендациям. Если робот не находит файла robots.txt, то в своем поведении исходит из предположения, что ваш узел целиком в его распоряжении. Заметьте, что ответственность за то, куда позволен или запрещен доступ роботам, полностью возложена на вас, администратора узла. Следует помнить также о том, что не все роботы соответствуют стандартам SRE, некоторые роботы могут игнорировать команды из файла robots.txt. К счастью, подавляющее большинство современных роботов либо согласованы со стандартами SRE, либо дорабатываются в этом направлении.

Как же выглядит файл robots.txt? Приведем пример простого файла, содержащего требование ко всем роботам держаться подальше от каталога /tmp/documents и его подкаталогов:

# Sample robots.txt file
User-agent: *
Disallow: /tmp/documents/
Первая строка - это комментарий. Вы можете поместить комментарии в любом месте такого файла, но при условии, что перед каждым будет стоять соответствующий знак. Во второй строке определяется, на каких роботов распространяется приведенная ниже стратегия доступа; "*" означает, что на всех. В третьей строке - запрет на доступ к указанному каталогу и подчиненным ему подкаталогам. В файл можно включить несколько предложений Disallow, с тем чтобы запретить доступ к двум или более каталогам.

В некоторых случаях бывает, что необходимо разрешить определенным роботам доступ к тем областям узла, для которых другим роботам он должен быть запрещен. В следующем файле robots.txt для робота по имени Hal-9000 доступ не ограничен, в то время как другим запрещается доступ к каталогам /tmp/documents или /under_construction:

# Sample robots.txt file
User-agent: *
Disallow: /tmp/documents/
Disallow: /under_construction/
User-agent: Hal-9000
Disallow:
Чтобы поставить в известность SRE-совместимых роботов о том, что они должны проигнорировать ваш узел, просто создайте файл robots.txt, содержащий следующие два предложения:
User-agents: *
Disallow: /
Увидев их, "благовоспитанный" робот немедленно отключится от этого узла и начнет поиск другого сервера.

Советы на будущее

В будущем число роботов, "путешествующих" по Web, возрастет. Если вы разработчик робота, то для придания ему "учтивости" твердо придерживайтесь известных стандартов и соглашений. Обратите внимание на то, чтобы запросы на HTML-документы от вашего робота не поступали к какому-то узлу сразу десятками, и не запускайте его на исполнение без особой необходимости. Если же вы - Web-администратор, позаботьтесь о наличии на вашем узле файла robots.txt, чтобы посещающие ваш узел роботы могли получить информацию о том, куда им доступ разрешен, а куда нет.

 
Webdelo © 2005
 
Hosted by uCoz