Что такое spider интернет

Поисковой паук (краулер): виды и функции

Поисковый паук (другие наименования — робот, веб-паук, краулер) — программа поисковой системы, сканирующая веб-ресурсы для отражения сведений о них в базе данных.

С какой целью создают поисковых пауков?

Приведём элементарный пример. Представим себе Иванова Валерия, который регулярно посещает сайт http://it-ebooks.info/, где ежедневно публикуются новые электронные книги. Заходя на ресурс, Валерий выполняет заданную последовательность действий:

1) открывает главную страницу;

2) заходит в раздел «Последние загруженные произведения»;

3) оценивает новинки из списка;

4) при появлении интересных заголовков, проходит по ссылкам;

5) читает аннотацию и, если она интересна, скачивает файл.

Указанные действия отнимают у Валерия 10 минут. Однако, если тратить на поиск 10 минут в день, в месяц это уже 5 часов. Вместо этого к задаче можно привлечь программу, отслеживающую новинки по расписанию. По механизму действия она будет представлять собой простейшего веб-паука, заточенного под выполнение определенных функций. Без краулеров не выживет никакая поисковая система, будь то лидеры Google и «Яндекс» или предприимчивые стартапы. Боты перемещаются по сайтам, отыскивая сырье для поисковой системы. При этом чем с большей отдачей трудится паук, тем актуальнее результаты выдачи (рис. 1).

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

В зависимости от поисковой системы, функции, которые мы перечислим ниже, могут выполнять один или несколько роботов.

1. Сканирование контента сайта. Функция краулера первого порядка — обнаружение вновь созданных страниц и сбор размещенной текстовой информации.

2. Считывание графики. Если поисковая система подразумевает поиск графических файлов, для этой цели может быть введен отдельный веб-паук.

3. Сканирование зеркал. Робот находит идентичные по содержанию, но разные по адресу, ресурсы. «Работник», наделенный такими должностными полномочиями, есть у «Яндекса».

Содержание

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

У поисковых систем есть несколько пауков, каждый из которых поддерживает выполнение запрограммированных функций (рис. 2).

Пауки «Яндекс»

Пауки Google

Вежливые пауки — как научить роботов правилам поведения

Вежливыми называют краулеров, которые действуют, придерживаясь существующих правил поведения на сайте. Эти правила пишут вебмастеры, размещая их в файле robots.txt (рис. 3). Пауки, которые попадают на сайт, на начальном этапе изучают информацию в указанном файле, где перечислены страницы, содержание которых не подлежит разглашению (регистрационные данные пользователей, административные сведения). Получив указания, паук приступает к индексации сайта, либо покидает его.

В robots.txt прописывают:

User-Agent: Twitterbot Allow: /images

Расшифруем эти данные:

Вежливый робот всегда представляется и указывает в заголовке запроса реквизиты, которые дают возможность вебмастеру связаться с владельцем. Для чего вводятся ограничения? Владельцы ресурсов заинтересованы в привлечении реальных пользователей и не желают, чтобы программы строили на их контенте свой бизнес. Для этих целей сайты часто настраивают на обслуживание браузерных HTTP-запросов и лишь за тем — запросов от программ.

Источник

Поиск под капотом Глава 1. Сетевой паук

Умение искать информацию в Интернете является жизненно необходимым. Когда мы нажимаем на кнопку «искать» в нашей любимой поисковой системе, через доли секунды мы получаем ответ.

Большинство совершенно не задумывается о том, что же происходит «под капотом», а между тем поисковая система — это не только полезный инструмент, но еще и сложный технологический продукт. Современная поисковая система для своей работы использует практически все передовые достижения компьютерной индустрии: большие данные, теорию графов и сетей, анализ текстов на естественном языке, машинное обучение, персонализацию и ранжирование. Понимание того, как работает поисковая система, дает представление об уровне развития технологий, и поэтому разобраться в этом будет полезно любому инженеру.

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

В нескольких статьях я шаг за шагом расскажу о том, как работает поисковая система, и, кроме того, для иллюстрации я построю свой собственный небольшой поисковый движок, чтобы не быть голословным. Этот поисковый движок будет, конечно же, «учебным», с очень сильным упрощением того, что происходит внутри гугла или яндекса, но, с другой стороны, я не буду упрощать его слишком сильно.

Первый шаг — это сбор данных (или, как его еще называют, краулинг).

Веб — это граф

Та часть Интернета, которая нам интересна, состоит из веб-страниц. Для того чтобы поисковая система смогла найти ту или иную веб-страницу по запросу пользователя, она должна заранее знать, что такая страница существует и на ней содержится информация, релевантная запросу. Пользователь обычно узнает о существовании веб-страницы от поисковой системы. Каким же образом сама поисковая система узнает о существовании веб-страницы? Ведь никто ей не обязан явно сообщать об этом.

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

На самом деле структура страниц и ссылок между ними описывает структуру данных под названием «граф». Граф по определению состоит из вершин (веб-страниц в нашем случае) и ребер (связей между вершинами, в нашем случае — гиперссылок).

Другими примерами графов являются социальная сеть (люди — вершины, ребра — отношения дружбы), карта дорог (города — вершины, ребра — дороги между городами) и даже все возможные комбинации в шахматах (шахматная комбинация — вершина, ребро между вершинами существует, если из одной позиции в другую можно перейти за один ход).

Графы бывают ориентированными и неориентированными — в зависимости от того, указано ли на ребрах направление. Интернет представляет собой ориентированный граф, так как по гиперссылкам можно переходить только в одну сторону.

Для дальнейшего описания мы будем предполагать, что Интернет представляет собой сильно связный граф, то есть, начав в любой точке Интернета, можно добраться до любой другой точки. Это допущение — очевидно неверное (я могу легко создать новую веб-страницу, на которую не будет ссылок ниоткуда и соответственно до нее нельзя будет добраться), но для задачи проектирования поисковой системы его можно принять: как правило, веб-страницы, на которые нет ссылок, не представляют большого интереса для поиска.

Небольшая часть веб-графа:

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

Алгоритмы обхода графа: поиск в ширину и в глубину

Поиск в глубину

Существует два классических алгоритма обхода графов. Первый — простой и мощный — алгоритм называется поиск в глубину (Depth-first search, DFS). В его основе лежит рекурсия, и он представляет собой следующую последовательность действий:

Код на Python, имплементирующий данный подход буквально дословно:

Метод поиска в глубину целесообразно применять для того, чтобы обойти веб-страницы на небольшом сайте, однако для обхода всего Интернета он не очень удобен:

В целом обе эти проблемы можно решить, но мы вместо этого воспользуемся другим классическим алгоритмом — поиском в ширину.

Поиск в ширину

Поиск в ширину (breadth-first search, BFS) работает схожим с поиском в глубину образом, однако он обходит вершины графа в порядке удаленности от начальной страницы. Для этого алгоритм использует структуру данных «очередь» — в очереди можно добавлять элементы в конец и забирать из начала.

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

Понятно, что в очереди сначала окажутся вершины, находящиеся на расстоянии одной ссылки от начальной, потом двух ссылок, потом трех ссылок и т. д., то есть алгоритм поиска в ширину всегда доходит до вершины кратчайшим путем.

Еще один важный момент: очередь и множество «увиденных» вершин в данном случае используют только простые интерфейсы (добавить, взять, проверить на вхождение) и легко могут быть вынесены в отдельный сервер, коммуницирующий с клиентом через эти интерфейсы. Эта особенность дает нам возможность реализовать многопоточный обход графа — мы можем запустить несколько одновременных обработчиков, использующих одну и ту же очередь.

Robots.txt

Прежде чем описать собственно имплементацию, хотелось бы отметить, что хорошо ведущий себя краулер учитывает запреты, установленные владельцем веб-сайта в файле robots.txt. Вот, например, содержимое robots.txt для сайта lenta.ru:

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

Имплементация

Итак, мы хотим обойти Интернет и сохранить его для последующей обработки.

Конечно, в демонстрационных целях обойти и сохранить весь Интернет не выйдет — это стоило бы ОЧЕНЬ дорого, но разрабатывать код мы будем с оглядкой на то, что потенциально его можно было бы масштабировать до размеров всего Интернета.

Это означает, что работать мы должны на большом количестве серверов одновременно и сохранять результат в какое-то хранилище, из которого его можно будет легко обработать.
В качестве основы для работы своего решения я выбрал Amazon Web Services, так как там можно легко поднять определенное количество машин, обработать результат и сохранить его в распределенное хранилище Amazon S3. Похожие решения есть, например, у google, microsoft и у яндекса.

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

Архитектура разработанного решения

Центральным элементом в моей схеме сбора данных является сервер очереди, хранящий очередь URL, подлежащих скачиванию и обработке, а также множество URL, которые наши обработчики уже «видели». В моей имплементации это они основаны на простейших структурах данных Queue и set языка python.

В реальной продакшн-системе, скорее всего, вместо них стоило бы использовать какое-нибудь существующее решение для очередей (например, kafka) и для распределенного хранения множеств (например, подошли бы решения класса in-memory key-value баз данных типа aerospike). Это позволило бы достичь полной горизонтальной масштабируемости, но в целом нагрузка на сервер очереди оказывается не очень большой, поэтому в таком масштабировании в моем маленьком демо-проекте смысла нет.

Рабочие серверы периодически забирают новую группу URL для скачивания (забираем сразу помногу, чтобы не создавать лишнюю нагрузку на очередь), скачивают веб-страницу, сохраняют ее на s3 и добавляют новые найденные URL в очередь на скачивание.

Для того чтобы снизить нагрузку на добавление URL, добавление тоже происходит группами (добавляю сразу все новые URL, найденные на веб-странице). Еще я периодически синхронизирую множество «увиденных» URL с рабочими серверами, чтобы осуществлять предварительную фильтрацию уже добавленных страниц на стороне рабочей ноды.

Скачанные веб-страницы я сохраняю на распределенном облачном хранилище (S3) — это будет удобно впоследствии для распределенной обработки.

Очередь периодически отправляет статистику по количеству добавленных и обработанных запросов в сервер статистики. Статистику отправляем суммарно и в отдельности для каждой рабочей ноды — это необходимо для того, чтобы было понятно, что скачивание происходит в штатном режиме. Читать логи каждой отдельной рабочей машины невозможно, поэтому следить за поведением будем на графиках. В качестве решения для мониторинга скачивания я выбрал graphite.

Запуск краулера

Как я уже писал, для того чтобы скачать весь Интернет, нужно огромное количество ресурсов, поэтому я ограничился только маленькой его частью — а именно сайтами habrahabr.ru и geektimes.ru. Впрочем, ограничение это довольно условное, и расширение его на другие сайты — просто вопрос количества доступного железа. Для запуска я реализовал простенькие скрипты, которые поднимают новый кластер в облаке amazon, копируют туда исходный код и запускают соответствующий сервис:

Код скрипта deploy.py, содержащего все вызываемые функции

Использование в качестве инструмента статистики graphite позволяет рисовать красивые графики:
Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

Красный график — найденные URL, зеленый — скачанные, синий — URL в очереди. За все время скачано 5.5 миллионов страниц.

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет
Количество скрауленных страниц в минуту в разбивке по рабочим нодам. Графики не прерываются, краулинг идет в штатном режиме.

Результаты

Скачивание habrahabr и geektimes у меня заняло три дня.
Можно было бы скачать гораздо быстрее, увеличив количество экземпляров воркеров на каждой рабочей машине, а также увеличив количество воркеров, но тогда нагрузка на сам хабр была бы очень большой — зачем создавать проблемы любимому сайту?
В процессе работы я добавил пару фильтров в краулер, начав фильтровать некоторые явно мусорные страницы, нерелевантные для разработки поискового движка.

Разработанный краулер, хоть и является демонстрационным, но в целом масштабируется и может применяться для сбора больших объемов данных с большого количества сайтов одновременно (хотя, возможно, в продакшне есть смысл ориентироваться на существующие решения для краулинга, такие как heritrix. Реальный продакшн-краулер также должен запускаться периодически, а не разово, и реализовывать много дополнительного функционала, которым я пока пренебрег.

В следующей статье цикла я построю индекс по скачанным веб-страницам при помощи технологий больших данных и спроектирую простейший движок собственно поиска по скачанным страницам.

Источник

SPEEDTEST

Сервис проверки скорости интернета

Проверка скорости интернета – SPEEDTEST

Поделиться с другом

Если у пользователя возникают сомнения в качестве оказываемых провайдером услуг, ему стоит использовать сервис спидтест. Он предназначен специально для измерения скорости интернет-соединения и позволяет абонентам выяснить, насколько качественно оператор выполняет собственные обязанности.

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

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

Как измерить скорость интернета

Чтобы бесплатно измерить скорость интернет-соединения и узнать реальное качество трафика, нужно:

Чтобы итоги оказались максимально точными, рекомендуется:

То есть, пользователям стоит отключить всё, то способно использовать часть трафика и задействовать мощности используемой абонентом линии. В противном случае получить точные показатели будет практически невозможно.

Данные полученные от сервиса

По итогам тестирования пользователям станут известны 3 глобальных показателя:

Выбрать из перечисленных показателей важнейшее невозможно, поскольку их значимость зависит от ситуации. Кроме того, при надёжном соединении все показатели должны быть на достойном уровне.

Нормальные значение входящей и исходящей скорости пинга

Назвать оптимальные значения скорости невозможно, поскольку они зачастую зависят от того, какой тариф подключен у пользователя. Именно на показатели тарифного плана и следует ориентироваться, сравнивая результаты тестирования с тем, что должно быть.

При этом нужно учитывать, что сервис измеряет скорость в Мбит/с, а в абонентском договоре могут быть указаны другие единицы, например, Мбайт/с, Кбайт/с или Кбит/с.

Также стоит знать, что:

Тестирование скорости интернета онлайн-сервисами

Помимо нашего сервиса существует ещё несколько порталов, позволяющих провести спидтест скорости интернета:

Чтобы воспользоваться ими, достаточно повторить описанную выше процедуру. Пользователям нужно посетить любой из указанных сайтов и нажать кнопку, запускающую спидтест. После чего останется немного подождать.

Важно подчеркнуть, что все существующие программы предельно похожи, поскольку используют единые алгоритмы проверки.

Они отправляют пакет данных на выбранный пользователем сервер (если сервис позволяет выбирать) и получает пакет обратно. В этот момент производится измерение качества связи, скорости и надёжности соединения.

Если использование сторонних сервисов не вызывает доверия, можно использовать для измерения командную строку. Кроме того, большинство провайдеров имеют собственные утилиты для измерения качества сети. Их можно найти на сайтах обслуживающих компаний.

Как проверить скорость интернета на телефоне

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

Важно подчеркнуть, что все указанные ранее правила измерений актуальны и для телефона. Перед тестированием стоит отключить всё, что способно повлиять на точность полученных результатов. Сказанное касается даже фоновых программ, которые обычно никак себя не проявляют.

От чего зависит скорость интернет-соединения

В первую очередь качество соединения зависит от провайдера, поэтому, если проверка реальной скорости интернета показала низкие результаты, стоит поискать телефон call-центра. Но дополнительно стоит помнить, что на стабильность сети влияют:

Также иногда, когда речь идёт о мобильной или спутниковой связи, на качество подключения влияют погодные условия или покрытие сети.

Как увеличить скорость интернета

Чтобы увеличить скорость интернета, достаточно устранить перечисленные выше помехи. Для этого стоит:

После чего останется провести повторный замер с помощью нашего сервиса и узнать, стал ли пинг меньше, а скорость выше.

Если количество мегабит в секунду не поменялось, остаётся звонить в службу поддержки провайдера и просить помощи операторов.

Лучшие провайдеры РФ

Помимо основных функций, описанные агрегаторы собирают статистику и составляют собственный рейтинг интернет-провайдеров России. В число лидеров входят:

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

Источник

Спайдеры

Спайдер (spider) — это программа, используемая для получения некоторых или всех ресурсов с большого числа Web-сайтов. На первых порах спайдеры [Fic94] использовались в качестве вспомогательного средства при обслуживании Web-сай- тов. В настоящее время спайдеры в основном используются для сбора информации в интересах поисковых систем. До сих пор мы обсуждали роль Web-браузеров — наиболее распространенного типа Web-клиентов. Поиск информации в Web также остается одним из популярных приложений, что и явилось причиной для создания таких инструментов, как спайдеры. Далее мы подробно рассмотрим клиенты-спай- деры и поговорим об их использовании в поисковых системах.

В главе 1 мы говорили о роли, которую играли предшествующие Web-системы в оказании помощи пользователям при поиске интересующих их документов в Internet. Эти системы имели каталоги, служившие в качестве предметпых указателей для наборов документов. Gopher и WAIS имели дополнительные возможности для индексирования документов, хотя при этом каждый сайт должен был регистрировать свое содержимое на центральных серверах.

Системы, связанные с Web, такие как Gopher, были также ориептироваиы на поиск информации. Централизованный характер Gopher с его требованиями глобальной регистрации создали условия для всеобъемлющего поиска, однако необходимость обслуживания центрального реестра стало серьезной помехой в достижении успеха. С самого пачала поиск активно использовался приложениями в Web. При быстром увеличении числа Web-сайтов, пользователей и Web-страниц, отсутствовала расширяемая технология, позволяющая отдельным пользователям или владельцам сайтов ориентироваться в быстро растущем наборе доступных документов. Децентрализованная суть Web сделала поиск сайтов и страниц необходимостью. Если пользователь ищет вхождения строки в небольшом файле, можно выполнить поиск по запросу. Выполнение же поиска в наборе из нескольких гысяч файлов потребует времени. Если же следует просмотреть десятки тысяч файлов, размещенных на тысячах компьютеров, задержка для пользователя будет еще больше. Наконец, если сотни тысяч пользователей ищут текстовые строки в десятках миллионов документов, размещенных на миллионах компьютеров, проблема становится значительно более сложной. Именно эту проблему призваны решать поисковые системы.

Один из способов существенно ускорить поиск — это иметь упорядоченный набор указателей вхождений искомых строк на их позиции в документах. Такой набор указателей называется инвертированным индексом. Например, предметный указатель в конце этой книги является подмножеством инвертированного индекса; он отсылает обратно к страницам, где встречаются указанные термины. Авторы могут принять решение не использовать все слова, которые встречаются в книге, в предметном указателе. Предметный указатель при этом получился бы слишком большим и не слишком полезным. Предметный указатель в книге указывает только на основные вхождения проиндексированных слов, в то время как инвертированный индекс обычно содержит все вхождения каждого из индексированных терминов. Слова, которые исключены из процесса индексирования, называются сорными словами (stop words). В качестве примеров можно привести часто встречающиеся слова, такие как «the» и «end».

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

На практике, однако, с сайтов может запрашиваться только часть ресурсов. Многие спайдеры, например, не запрашивают изображепия или мультимедийные ресурсы. Это делается, если спайдер используется для построения индекса только текстовых ресурсов.

Допустим, сайт www.kandrse.com желает предоставить пойсковый сервис, сходный с тем, который предоставляют популярные системы Excite и AltaVista. Сайт www.kandrse.com использует спайдер для загрузки страниц, подлежащих индексированию. Спайдер обычно начинается с базового списка популярных сайтов — известного как начальный список (start-list), за которым следуют все URL, которые будут найдены в составе сайтов начального списка. В качестве примера начального списка можно привести перечень категорий, присутствующий на популярных сайтах, таких как Yahoo. Построение иачалыюго списка популярных сайтов и распределение задач представляют собой наиболее интересную техническую задачу при создании спайдеров.

Спайдер загружает начальную страницу сайта (например, http://www.cnn.com/) и просматривает все встроенные в нее гиперссылки. Для каждой гиперссылки оп может загрузить соответствующую страиицу, — это называется обходом сначала в ширину (breadth-wise). Осуществляется переход по каждой гипертекстовой ссылке в составе сайта (т.е. гиперссылкам, имеющим суффикс cnn.com/, например, http://www.cnn.com/nebraska.html или http://www.cnn.com/weatherpage.html), а затем переходы по гинерссылкам на нолученпой странице и т.д. Есть и другой способ: спайдер может отобрать первую встроенную гинерссылку и, предполагая, что гиперссылка обращается также к HTML-докумеиту, осуществить сиигаксиче- ский анализ документа и перейти по первой встроенной гиперссылке (если она имеется). Подобный подход называется обходом сначала в глубину (depth-wise). Здесь следует позаботиться о недопущении замкнутых циклов в результате перехода по гиперссылке, которая ранее уже была обработана. Множество страниц может иметь встроенные ссылки на одну и ту же страницу, либо страница в глубине иерархии сайта может иметь ссылку на страницу верхнего уровня. Например, страница http://www.cnn.com/foreign/Iatvia/riga/opera/2000/schedule.html может иметь ссылку на http://www.cnn.com. Спайдер может также использовать другие алгоритмы для пропуска нежелательных страниц или сайтов; например, содержимое сайта может быть признано неподобающим. Миогие спайдеры также принимают решение осуществлять индексирование лишь до определенного уровня глубины сайта. В результате сочетания обходов в ширипу и в глубипу могут быть собраны все ресурсы сайта. Время последнего посещения сайта записывается и используется при принятии решения о повторном его индексировании.

Спайдер может попытаться загрузить все ресурсы сайта за один раз, либо, что является более правильным, разбить эту задачу на отдельные части и выполнять ее в течепие некоторого периода времени. В прогивиом случае исходный сервер сайта может оказаться слишком загруженным при получении запросов от снайдера и не сможет обслуживать запросы от обычных пользователей. Большинство используемых в Web спайдеров не возвращаются к одному и тому же сайту чаще одного или двух раз в минуту. могут не загружать определенные в ресурсы в поисковую систему www.kandrse.com. Например, если сайт поисковой системы намеревается построить инвертированный иидекс только текстовых ресурсов, загружать изображения пет надобности.

После того как сайт был проиндексирован, спайдер должен периодически повторно посещать сайт, поскольку содержимое последнего может изменяться. Однако содержимое одних сайтов может меняться не столь часто, как содержимое других сайтов. Спайдер должен обладать достаточным интеллектом, чтобы переиндексировать сайты в соответствии со скоростью изменения информации на них. Это позволяет сократить объем работы и избежать излишних обращений к сайту. Кроме того, некоторые составные части сайта могут меняться чаще, чем другие. Спайдер должен, таким образом, учитывать структуру информации на сайте и просматривать регулярно меняющиеся части более часто.

В то время как статические ресурсы могут быть достаточно легко проанализированы спайдером, динамические ресурсы обычно не индексируются. Ряд ресурсов сайта может динамически создаваться с помощью CGI-сцепариев (см. главу 4, раздел 4.2.3). Сценарии часто используют параметры, а спайдер «пе знает», какие значения параметров следует использовать при вызове. Основным назначением индексирования сайтов является возможность возвращать егшеок гиперссылок на страницы в ответ на запрос. Таким образом, даже если бы это было возможно, в индексировании динамических ресурсов нет особого смысла. Если спайдер «замечает», что сайт состоит главным образом из динамических ресурсов, он может не индексировать статические страниц сайта, а также динамически генерируемые ресурсы, которые не изменяются в зависимости от параметров запросов. Иногда на сайте имеются ресурсы, которые педостижимы через ссылки извпе. не знают о существовании таких ресурсов и не индексируют их.

Сайт может оказаться не в состоянии противодействовать индексированию себя снайдером. Хотя многим сайтам индексирование выгодно (многие создатели Web- страниц хотели бы, чтобы их страницы увидело как можно больше людей), некоторые сайты предпочитают, чтобы их «ие беспокоили». Для разрешения этой проблемы существует ряд соглашений. Нет простого способа сделать так, чтобы ресурс был доступеп любым клиентам кроме спайдеров, поскольку вряд ли можно различать клиентов, посещающих сайт. Каждый запрос, поступающий от клиента, рассматривается как независимый запрос, и серверам пришлось бы хранить значительный объем информации о состоянии, чтобы отслеживать частоту поступления запросов от определенных клиентов в надежде обнаружить спайдер. Кроме того, подобный мехапнзм может оказаться бесполезным, если спайдеры не посылают все свои запросы с одного IP-адреса, либо меняют частоту передачи запросов конкретному сайту. Даже если исходному серверу известно, что клиентом является спай- дер, обеспечить селективный доступ может оказаться затруднительным, поскольку серверу придется проверять каждый входящий запрос, чтобы выяснить, не поступил ли он от спайдера. Подобное действие может увеличить время ожидания на стороне клиентов.

Существует два соглашения, которым обычно следуют сайты, чтобы каким-то образом контролировать работу индексирующих их снайдеров. должны иметь стимул вести себя надлежащим образом; в противпом случае поисковая система может заслужить плохую репутацию. На уровне сайта это может быть реализовано следующим образом: администратор Web-сайта ведет файл с именем robots.txt. Робот — это одно из названий автоматизированного клиента (такого, как спайдер), а файл robots.txt содержит правила доступа, которым должны следовать роботы. Web-сайты используют этот файл в соответствии со стандартом Robot Exclusion Standard [RES]. Файл содержит список каталогов, которые спайдеры не должны посещать, а также спецификацию агентов пользователя, к которым эти ограничения применяются.

Например, рассмотрим следующий файл robots.txt:

User-agent: * Disallow: /stats Disallow: /cgi-bin/ Disallow: /Excite/

В нем указывается, что всем агентам пользователя разрешается загружать ресурсы с сайта для индексирования. Если в поле User-agent присутствуют одпа или несколько строк (вместо «*»), например:

User-agent: ArachnoPhobia, BlackWidow

то два указанных агента пользователя распознаются как клиенты, которые не могут обращаться к сайгу для индексирования. Web-сервер не осуществляет ка- кой-либо явпой проверки или действий по запрету доступа.

Строки Disallow используются для указания каталогов (/states, /cgi-bin, /Exci- te), которые не должны просматриваться программами-роботами, в том числе спайдерами. Онять-таки, сервер не может реализовать такие ограничения. Стандарт Robot Exclusion Standard [RESJ определяет соглашения, которым должен следовать «добропорядочный» робот. Побудительным мотивом для роботов следовать стандарту является то, что сайтам часто известен набор ресурсов, которые пет смысла индексировать. В приведенном выше примере каталог cgi-bin скорее всего содержит группу ресурсов, которые при вызове с различными значениями параметров с большой вероятностью будут возвращать различные результаты.

Таблица 2.4. Некоторые поисковые систсмы

Доменное имя спайдера

Scooter/2.0 G.R.A.B. X2.0 Scooter/1.0 scootcr@pa.dec.com

Что такое spider интернет. Смотреть фото Что такое spider интернет. Смотреть картинку Что такое spider интернет. Картинка про Что такое spider интернет. Фото Что такое spider интернет

Второй способ сообщить роботам о том, какие ресурсы не следует индексировать — воспользоваться HTML-тегом МЕТА. Например, тег

ипформирует робота, что текущий ресурс не должен индексироваться и не следует осуществлять переходы по гиперссылкам в ресурсе. При синтаксическом анализе HTML-документа спайдеры просматривают значение атрибута CONTENT тега МЕТА с целью выяснения, могут ли они индексировать этот документ или осуществлять переходы по имеющимся в нем гиперссылкам.

В таблице 2.4 представлен список известпых спайдеров [Spi], используемых некоторыми популярными поисковыми системами. В первом столбце указано название поисковой системы, во втором столбце — имя, присвоенное спайдеру, а в третьем столбце — доменное имя компьютера, на котором размещен спайдер. Информация предоставляется в виде идентификационных данных, которые Web-сайт может использовать, для обеспечения не слишком частого доступа спайдера к сайгу. Большинство известных спайдеров следуют стандарту Robot Exclusion Standard. К главным отличиям между спайдерами относятся общее число посещаемых сайтов, общее количество индексируемых ресурсов и частота нереиндексировапия. Ряд современных спайдеров способны осуществлять индексирование миллиардов Web-страииц и делать их доступными для поиска. Сравнение эффективности различных поисковых систем можно найти в [LG99]. Большинство компаний не раскрывают информацию о своих спайдерах, поскольку среди поисковых систем имеется силытая конкуренция. Подробную информацию о расширяемом средстве сканирования Web с описанием его возможностей можно найти в [HN99].

Использование спайдеров в поисковых системах

помогают поисковым системам индексировать страницы Web-сайтов. В зависимости от сложности спайдера, размера пачалыюго списка и достунных спайдеру ресурсов, инвертированный индекс может быть создан для всех или для некоторых страниц. За последние 20 лет были созданы сложные алгоритмы построения предметных указателей для больших наборов документов [WMB99].

Сайты поисковых систем являются, пожалуй, наиболее популярными в Web. Сайты порталов, такие как yahoo.com, excite.com, google.com и altavista.com, являются отправными точками для множества приложений. О порталах подробнее рассказывается в главе 4, раздел 4.1. Практически все порталы имеют пользовательский интерфейс для поиска. Поисковая система предоставляет пользователю возможность для ввода одного или нескольких ключевых слов. Ключевые слова ищутся в инвертированном индексе, после чего возвращаются указатели на содержащие эти слова документы (если таковые имеются). Поиск может быть ограничен одной базой данных (например, содержащей ссылки на Группы новостей или сводки показателей стоимости акций), либо поиск осуществляется по всему индексированному содержимому Web. Многие пользователи тратят значительное время на поиск. Одной из причин этого является отсутствие хорошего едииого предметного указателя для Web. К наиболее популярным сайтам относится Yahoo!, который индексирует сайты, по не содержимое всех страииц. Другими словами, для целей индексирования отбираются только основные страницы сайтов. Поисковые сайты, такие как AltaVista и Google, индексируют отдельные страницы в составе Web- сайтов. Таким образом, сайты, подобные Yahoo!, могуг использоваться для поиска общей информации по теме, не вдаваясь в подробности, тогда как AltaVista и Google более результативны для поиска отдельных документов.

Список возвращенных документов (или указателей на документы) называется результирующим множеством. Поисковые системы различаются но уровню сложности. Большинство поисковых систем предоставляет простые функции поиска, с помощью которых в предметном указателе ищется одно или несколько ключевых слов и возвращаются указатели на документы, в которых найдепо любое вхождение ключевого слова. Наличие нескольких ключевых слов интерпретйруется как требование выполнения логического оператора or (wiu). Поисковая система Google [Goo] предоставляет пользователям простой интерфейс. Искомые термины объединяются с помощью логического оиератора and (и), при этом возвращаются ссылки только на документы, содержащие все ключевые слова. Усовершенствованная версия поисковой системы AltaVista [Alt] и ее вариаит Raging [Rag] имеют более сложный интерфейс: пользователи могут использовать любую комбинацию операторов and (и), or (wiu), not (не) и near (около). Оператор not (не) представляет собой унарное отрицание, и документы, содержащие искомый термин, исключаются из результирующего множества. Оператор near (около) используется для задания расстояния между ключевыми словами в документе Путем сочетаний различных операторов можно получить результирующее множество, соответствующее требованиям пользователя и содержащее умеренное число документов.

Двумя основными показателями поисковых систем, выработанными в результате многолетних исследований, являются полнота (recall) и точность (precision). Полнота оценивает широту охвата искомого множества, т.е. объем результирующего множества как функция от размера списка документов, в которых встречаются искомые ключевые слова. Если объем результирующего множества большой, пользователи могут быть уверены, что Они получили полный ответ. К сожалению, принимая во виимапие неоднозначность естественного языка, большинство «ответов» в результирующем множестве могут не устраивать пользователя.

Предположим, например, что пользователь хочет узнать имя создателя храма Парфенон в Греции. Строка поиска «создатель Парфенона» может вериуть множество страниц, относящихся к издательской компании «Парфенои», к греческим ресторанам под названием «Парфенон», а также к различным архитекторам. Показателем качества ответа является точность — уместность документов в данном результирующем множестве. Часто полнота и точность являются взаимоисключающими: возврат меньшего числа документов может увеличить точность, но полнота при этом уменьшится. Аналогично, более широкое результирующее множество в целом снижает точность. Противоречие между точностыо и полнотой во многом остается неразрешимым, и многие поисковые системы тратят массу усилий, пытаясь повысить релевантность, возвращая, тем не менее, результирующее множество достаточно большого объема. Сложность запросов на естественном языке и отсутствие универсальных методов их обработки приводит к низкому качеству результатов. Подавляющее большинство запросов — на сегодняшний день, около 90% — к популярным поисковым системам, таким как AltaVista или Google, состоят из одного термина.

После выполнения поиска и формирования списка всех документов, в которых присутствуют ключевые слова, а также фильтрации но показателям полноты и точности с целью получения желаемого размера результирующего множества, поисковая система должиа ранжировать результаты. Ранжирование — это определение порядка, в котором будут возвращаться результаты поиска. Если мощность множества результата для искомой строки «создатель Парфепоп» составила 823, многие поисковые системы могут возвратить только первые 200 соответствий. Однако определение первых 200 соответствий требует ранжирования записей в результирующем множестве. Ранжирование по частоте вхождений искомых ключевых слов в документе не обязательно является хорошим показателем. Раижирование на основе частоты вхождений ключевых слов является рисковаииой, поскольку некоторые авторы документов намеренпо заполняют свои документы ключевыми словами, известными как «ловушки запросов». Например, поскольку значительное число запросов направлено на поиск материалов порнографического содержания (эта тема не слишком широко обсуждается в научной литературе), создатели таких Web-сграниц добавляют на свои страницы множество наиболее распространенных ключевых слов. Достаточно легко Можно сделать эти ключевые слова невидимыми при воспроизведении HTML-документа, установив для них нулевой размер шрифта или сделав так, чтобы текст сливался с фоном. Другими словами, эти ключевые слова воспринимаются только программными компонентами поисковых систем, осуществляющими ранжирование. Более интеллектуальные поисковые системы уменьшают значение частоты вхождений терминов при использовании его в качестве параметра для ранжировании. Хотя ранжирование — достаточно известная и очевидная концепция, используемая при поиске ииформации, исследования показали, что большинство пользователей просматривают лишь несколько элементов в результирующем множестве. На деле большинство популярных поисковых систем возвращает по 10 результатов за раз, хотя результирующее множество может содержать тысячи документов. Большинство пользователей обычно не идут дальше второй страницы результирующего миожества; г.е. просматривается максимум 20 записей. Популярная поисковая система Google дает возможность пользователям непосредственно переходить к первому документу в ранжированном списке результатов в обход страницы с результатами поиска.

В последнее время в поисковых системах было реализовано несколько новых идей. Например, поисковые системы, такие как Google и Clever [CleJ, использовали Понятие авторитетных (authoritative) Web-страниц при ранжировании страниц для повышения релевантности ответов. Многие пользователи считают, что Web- сайт газеты New York Times является полезным сайтом и добавляют на свои собственные страницы ссылки на этот сайт. Количество ссылок на страницу является показателем как популярности, так и в некоторой сгепеии доверия пользователей к информации на этой странице. Если набор страниц ранжировап на основе числа ссылок, указывающих на эти страницы, то страницы, количество ссылок на которые наибольшее, возвращаются пользователю в первую очередь. Подобная классификация использует неявно выраженную степень доверия к странице пользователей. Такая информация собирается спайдерами и используется для рапжировапия результатов поиска. При этом существенно возрастает потенциальная релевантность результатов поиска, поскольку обычно люди не создают ссылки на мало полезные сайты. Программы разбиения сайтов на категории иснользуют снецифиче- ские характеристики сайтов, такие как большое число маленьких изображений и наличие определенных ключевых слов. Поисковые системы могут учитывать категории сайтов и возвращать более качественные результаты поиска. Набор ключевых слов, введенных пользователем для поиска, может использоваться для определения, что же действительно ищет пользователь. Например, при поиске домашней страницы пользователя в качестве ключевого слова наиболее часто указывается имя пользователя. Таким образом, если выражение для поиска представляется схожим с именем пользователя, оптимальным при ранжировании будег помещение на первое место домашпей страницы пользователя (если оиа существует).

Интервал времени между обработкой документа снайдером, составлением поисковой системой инвертированного ипдекса и использованием его при поиске может быть различным для различных поисковых систем. Обычно он находится в пределах от одной до двух недель. Если за это время документ изменяется, искомые ключевые слова могут больше не присутствовать в документе, когда пользователь осуществляет поиск. Что еще хуже, документ может быть удален с сайта. Web-сайт может быть недоступен во время проведения поиска. В действительности, принимая во внимание эти возможности, некоторые поисковые системы кэши- руют копии искомых ресурсов во время индексирования. Пользователь может, rio крайней мере, увидеть версию документа, имевшуюся на момент индексирования. Часго кэшируется только текст HTML, а встроенные изображения игнорируются.

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

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *