Впоследствии произошло то, чего одни ждали с нетерпением, а другие -с ужасом. Сеть перестала быть пристанищем ТОЛЬКО ученого люда. В нее пришли сначала всяческого рода маргиналы, жаждущие общения, потом -компьютерщики, а в самое последнее время — обыватели, занятые в "некомпьютерных" областях человеческой деятельности. Сеть стала огромной, качество (в смысле, достоверность) выкладываемой в нее информации катастрофически снизилось, а поиск нужной информации среди тонн электронного хлама стал представлять серьезную проблему.
Эту проблему надо было как-то решать. И ее решили, когда Сеть набрала достаточный объем.
В 1995 году несколько американских студентов решили объединить свои коллекции полезных интернет-ссылок в своего рода базу данных, которой мог бы пользоваться каждый. При этом база данных содержала и сами адреса Web-страниц, и их описания, и набор ключевых слов — особых слов, однозначно описывающих содержимое каждой страницы (например, для музыкальных сайтов такими словами будут "музыка", "МРЗ", "аудио" и т. п.). Потом они написали специальную программу, осуществляющую поиск адреса по набранному в поле ввода слову и выдающую результат в виде Web-страницы с набором найденных ссылок. Кроме того, они написали еще одну программу, сканирующую Сеть в поисках новых Web-страниц и заносящую новые адреса в базу данных; сейчас такую программу называют поисковым агентом, поисковым роботом, или, в шутку, "пауком". Так возникла первая поисковая машина "Yahoo!"http://www.yahoo.com, получившая огромнейшую популярность и существующая до сих пор.
Задумка оказалась настолько удачной, что породила волну подражаний. Поисковые машины плодились, как грибы после дождя. Сейчас их существует столько, что список даже более-менее крупных из них занял бы несколько страниц убористого текста. Ограничимся только несколькими (табл. 14.1).
Таблица 14.1. Популярнейшие поисковые машины
Зарубежные/ отечественные | Название | Интернет-адрес |
Зарубежные | Yahoo! AltaVista ListBot InfoSeek Lycos | http://www.yahoo.comhttp://www.altavista.com http ://www. listbot.com http://www.infoseek.comhttp://www.lycos.com http://www.google.com |
Отечественные | Апорт Яндекс Рамблер | http://www.aport.ruhttp://www.yandex.ruhttp://www.rambler.ru |
Поисковые машины делятся на две большие группы, отличающиеся принципом работы - на классические поисковые машины и каталоги ссылок. Сейчас мы их рассмотрим.
Классическая поисковая машина (поисковик) — это, грубо говоря, база данных ссылок плюс программа поиска. Это поисковая машина в чистом виде. Она занимается тем, что хранит адреса Web-страниц в базе данных и выдает пользователям результаты поиска по ключевым словам. При этом она работает полностью в автоматическом режиме: сама находит и заносит в базу данных новые Web-страницы, сама формирует их описания и наборы ключевых слов, сама обновляет адреса уже существующих страниц, если они изменились, и их описания.
Присутствие пресловутого "человеческого фактора" в работе классических поисковиков минимально. (Хотя, разработчик может заложить в программу - агента и программу поиска какие-то свои наработки в плане оптимизации поиска, но на этом влияние человека на машину заканчивается.)
Также в базах данных поисковиков отсутствует какая-либо систематизация результатов их бесконечного поиска. Они работают по принципу "вали валом — потом разберем". (За тем исключением, что это "потом" никогда не наступит.) Они просто собирают адреса, автоматически формируют описание и набор ключевых слов и "валят" это в свою базу данных. Они могут лишь искать и регистрировать, потому что они — только программы. Способность же анализировать и систематизировать доступна исключительно человеку.
Каталоги ссылок базируются совсем на другом принципе. Во-первых, они пополняются не роботами, а людьми; люди заносят в них адреса и описания страниц и наборы ключевых слов для поиска. Во-вторых, ссылки в их базах данных жестко систематизированы и разбиты по разделам и подразделам. В-третьих, в каталог допускаются далеко не все страницы, а только те. которые действительно содержат что-то полезное.
Как же выглядит процесс занесения новой ссылки в каталог? Давайте распишем его по шагам.
1. Владелец сайта формирует набор параметров, вносимых в каталог. Это название сайта, его краткое описание, набор ключевых слов, разумеется, интернет-адрес сайта и свой почтовый адрес. Почтовый адрес может понадобиться, например, чтобы уведомить владельца о том, что его сайт внесен в базу данных каталога.
2. Владелец сайта заходит на особую Web-страницу и вводит все эти данные в форму ввода, после чего они сохраняются в базе данных новых поступлений. Заметьте, что эти данные не помещаются сразу в основную базу данных каталога, в которой, собственно, и осуществляется поиск, — это будет выполнено позже.
3. Человек, работающий на администрацию каталога, своего рода цензор или, как говорят опытные интернетчики, модератор каталога, просматривает данные вновь внесенного сайта в базе данных новых поступлений. После этого он заходит на этот сайт и проверяет, соответствует ли он введенным владельцем данным. Если это так, данные о новом сайте переносятся в основную базу данных каталога, а владельцу сайта посылается соответствующее уведомление. В противном случае данные о новом сайте удаляются, о чем его владельцу опять же посылается уведомление.
4. Владелец сайта получает посланное ему уведомление. Если его сайт внесен в базу данных каталога, это уведомление содержит номер, под которым сайт находится в базе данных, и пароль для доступа к его данным. В дальнейшем владелец может изменить данные сайта в базе данных каталога. Если же новый сайт почему-то не попал в каталог, модератор извиняется перед его владельцем и советует наполнить его Web-творение чем-нибудь полезным.
Недостатками каталогов являются медленная работа и неполный охват Сети. Люди-модераторы работают значительно медленнее программы, осуществляющей поиск страниц в Сети, поэтому процесс добавления данных о новом сайте в базу каталога может затянуться надолго. К тому же, люди часто ошибаются. Далее, из-за такой достаточно жесткой цензуры новых поступлений может оказаться, что каких-то сайтов или страниц в базе данных каталога нет, т. к. модератор их почему-то забраковал.
В настоящее время классические поисковые машины и каталоги в чистом виде очень редко встречаются. Абсолютное большинство современных поисковых машин используют оба этих подхода, т. е. содержат и классический поисковик, и каталог ссылок. Таким образом, они комбинируют достоинства и обходят недостатки этих двух разновидностей поисковых машин.
И все же, несмотря на обилие поисковых машин обоих типов поиск в Интернете — задача чрезвычайно сложная. Особенно она осложняется, если вам нужно найти что-то редкое или очень конкретное. Существует даже такая профессия — искатель информации в Интернете, профессия достаточно редкая, требующая, в основном, интуиции и поэтому хорошо оплачиваемая. Это даже не профессия — это призвание, как, например, музыкант или писатель.
Ну ладно. Оставим в покое каталоги (с ними все ясно) и подробнее поговорим о классических поисковиках. Точнее, о программах-агентах, осуществляющих поиск новых Web-страниц. Давайте выясним, как они работают.
Как работают поисковые агенты
Поисковый агент — это программа, периодически сканирующая всю Сеть и проверяющая, есть ли по тому или иному адресу Web-страница. Если страница есть, агент проверяет ее HTML-код, извлекает из него интернет-адреса, ведущие на другие Web-страницы. Также он извлекает ее название и пытается извлечь описание и набор ключевых слов, если они есть, после чего заносит все это в базу данных поисковика (или, как говорят опытные интернетчики, выполняет индексирование). Далее он обращается к Web-страницам, находящимся по найденным на текущей странице адресам, и проделывает с ними то же самое.
Поисковые агенты, как правило, пишутся на заказ очень опытными и знающими программистами. Хороший поисковый агент — настоящее произведение программистского искусства. Он должен отсекать несуществующие адреса, правильно опознавать HTML-теги, "интеллектуально" создавать описания и при этом быстро работать. Сами понимаете: Сеть велика, а времени всегда не хватает...
Вообще, проанализировать HTML-код — задача не очень сложная. В самом деле, название страницы помещается внутри тега <TITLE> в секции заголовка <HEAD>, а интернет-адреса других страниц с большой долей вероятности следует искать в тегах <А> и <AREA>. Написать программу, извлекающую такую информацию, для опытного программиста — пара пустяков.
Сложность здесь совсем в другом.
Давайте вспомним, какие данные помещаются в базу данных поисковой машины, и классического поисковика, и каталога. Кроме адреса и названия страницы, это еще и краткое описание и набор ключевых слов. А откуда их взять?
Проанализировать текст, помещенный на Web-странице? А как? Как обычная программа, даже очень сложная и подающая признаки легкого "интеллекта", узнает, какое из многих сотен, а то и тысяч слов текста страницы можно использовать как ключевое? Как она "ужмет" многокилобайтовый текст в краткое описание из 200 символов (такое ограничение на размер текста описания накладывают многие каталоги)? Как при этом выбрать нужную информацию и выжать всю "воду"?
Нет, это задача непроста даже для человека-модератора. Что уж требовать от программы...
Да, но как-то нужно выбирать из текста страниц необходимую информацию!
Как раз для этого и предназначены метатеги HTML. Именно с их помощью можно представить в HTML-коде информацию, которая не будет предназначена человеку, а исключительно программам. Человек ее даже не увидит (если, конечно, не станет специально для этого просматривать HTML-код).