Поисковый робот - Web crawler

Архитектура поискового робота

Роботы , иногда называемый пауком или spiderbot и часто сокращаются до гусеничного , является Интернет - бот , который систематически просматривает World Wide Web , как правило , эксплуатируемый поисковых системы с целью Web индексации ( веб - пауки ).

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

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

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

Сканеры могут проверять гиперссылки и HTML- код. Их также можно использовать для парсинга веб-страниц и программирования на основе данных .

Номенклатура

Веб-сканер также известен как паук , муравей , автоматический индексатор или (в контексте программного обеспечения FOAF ) веб-скаттер .

Обзор

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

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

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

Количество возможных URL-адресов, создаваемых серверным программным обеспечением, также затрудняло поисковым роботам веб-поисковик дублированного контента . Существуют бесконечные комбинации параметров HTTP GET (на основе URL), из которых только небольшая часть фактически вернет уникальный контент. Например, простая онлайн-фотогалерея может предлагать пользователям три варианта, как указано в параметрах HTTP GET в URL-адресе. Если существует четыре способа сортировки изображений, три варианта размера миниатюр , два формата файлов и возможность отключения содержимого, предоставленного пользователем, то к одному и тому же набору содержимого можно получить доступ с помощью 48 разных URL-адресов, на все из которых можно ссылаться сайт. Эта математическая комбинация создает проблему для поисковых роботов, поскольку они должны сортировать бесконечные комбинации относительно незначительных изменений сценария, чтобы получить уникальный контент.

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

Политика сканирования

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

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

Политика отбора

Учитывая нынешний размер Интернета, даже крупные поисковые системы охватывают только часть общедоступной части. Исследование 2009 года показало, что даже крупномасштабные поисковые системы индексируют не более 40-70% индексируемой сети; предыдущее исследование Стива Лоуренса и Ли Джайлза показало, что ни одна поисковая машина не проиндексировала более 16% веб-страниц в 1999 году. Поскольку сканер всегда загружает лишь часть веб-страниц , очень желательно, чтобы загруженная часть содержала больше всего релевантные страницы, а не просто случайная выборка из Интернета.

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

Junghoo Cho et al. провела первое исследование политик планирования сканирования. Их набор данных представлял собой сканирование 180 000 страниц из stanford.eduдомена, в котором моделирование сканирования было выполнено с различными стратегиями. Проверяемые показатели упорядочения включали расчет в ширину , количество обратных ссылок и частичный рейтинг PageRank . Один из выводов заключался в том, что если сканер хочет загрузить страницы с высоким PageRank на ранней стадии процесса сканирования, то лучше всего использовать стратегию частичного PageRank, за которой следуют «в ширину» и «счетчик обратных ссылок». Однако эти результаты относятся только к одному домену. Чо также написал докторскую диссертацию в Стэнфорде о сканировании веб-страниц.

Наджорк и Винер провели фактическое сканирование 328 миллионов страниц, используя порядок в ширину. Они обнаружили, что сканирование в ширину захватывает страницы с высоким PageRank на ранней стадии сканирования (но они не сравнивали эту стратегию с другими стратегиями). Авторы объясняют этот результат тем, что «самые важные страницы имеют много ссылок на них с множества хостов, и эти ссылки будут найдены раньше, независимо от того, с какого хоста или страницы исходит сканирование».

Абитебул разработал стратегию сканирования, основанную на алгоритме OPIC (онлайн-вычисление важности страницы). В OPIC каждой странице дается начальная сумма «наличных», которая распределяется поровну между страницами, на которые она указывает. Это похоже на вычисление PageRank, но быстрее и выполняется только за один шаг. Сканер, управляемый OPIC, сначала загружает страницы на границе сканирования с более высокими суммами «наличных». Эксперименты проводились на синтетическом графике на 100 000 страниц со степенным распределением внутренних ссылок. Однако не было никакого сравнения с другими стратегиями или экспериментами в реальной сети.

Болди и др. использовала моделирование на подмножествах Интернета из 40 миллионов страниц из .itдомена и 100 миллионов страниц из сканирования WebBase, тестируя сначала в ширину, сравнивая с глубиной, случайным порядком и всеведущей стратегией. Сравнение было основано на том, насколько хорошо PageRank, вычисленный при частичном сканировании, приближается к истинному значению PageRank. Удивительно, но некоторые посещения, которые очень быстро накапливают PageRank (в первую очередь, посещения в ширину и всезнающие посещения), дают очень плохие прогрессивные приближения.

Baeza-Yates et al. использовали моделирование на двух подмножеств Web 3 миллиона страниц из .grи .clобласти, тестирование несколько стратегий обхода. Они показали, что и стратегия OPIC, и стратегия, использующая длину очередей для каждого сайта, лучше, чем сканирование в ширину , и что также очень эффективно использовать предыдущее сканирование, когда оно доступно, для направления текущего сканирования. один.

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

Ограничение переходов по ссылкам

Сканер может захотеть только искать HTML-страницы и избегать всех других типов MIME . Чтобы запросить только ресурсы HTML, сканер может сделать запрос HTTP HEAD, чтобы определить MIME-тип веб-ресурса, прежде чем запрашивать весь ресурс с помощью запроса GET. Чтобы избежать многочисленных запросов HEAD, сканер может проверять URL-адрес и запрашивать ресурс только в том случае, если URL-адрес заканчивается определенными символами, такими как .html, .htm, .asp, .aspx, .php, .jsp, .jspx или косой чертой. . Эта стратегия может привести к непреднамеренному пропуску множества веб-ресурсов HTML.

Некоторые сканеры также могут не запрашивать ресурсы, помеченные знаком "?" в них (создаются динамически), чтобы избежать ловушек пауков, которые могут заставить сканер загружать бесконечное количество URL-адресов с веб-сайта. Эта стратегия ненадежна, если сайт использует перезапись URL-адресов для упрощения своих URL-адресов.

Нормализация URL

Сканеры обычно выполняют некоторый тип нормализации URL , чтобы избежать сканирования одного и того же ресурса более одного раза. Термин « нормализация URL-адреса» , также называемый канонизацией URL-адреса , относится к процессу согласованного изменения и стандартизации URL-адреса. Есть несколько типов нормализации, которые могут быть выполнены, включая преобразование URL-адресов в нижний регистр, удаление символа "." и ".." сегменты и добавление завершающих слэшей к непустому компоненту пути.

Ползание по восходящей траектории

Некоторые сканеры намереваются загрузить / выгрузить как можно больше ресурсов с определенного веб-сайта. Поэтому был введен поисковый робот с восходящим движением, который будет восходить к каждому пути в каждом URL-адресе, который он намеревается сканировать. Например, при задании исходного URL http://llama.org/hamster/monkey/page.html он попытается просканировать / hamster / monkey /, / hamster / и /. Cothey обнаружил, что поисковый робот по восходящему пути очень эффективен при поиске изолированных ресурсов или ресурсов, для которых не было бы найдено входящих ссылок при обычном сканировании.

Целенаправленное сканирование

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

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

Поисковый робот, ориентированный на академические науки

Пример сфокусированных гусеничные являются научными роботами, которые свободно ползают доступ академических соответствующие документы, такие как citeseerxbot , что искатель из CiteSeer X поисковой системы. Другими академическими поисковыми машинами являются Google Scholar и Microsoft Academic Search и т. Д. Поскольку большинство научных статей публикуется в форматах PDF , такие поисковые роботы особенно заинтересованы в сканировании файлов PDF , PostScript , Microsoft Word, включая их заархивированные форматы. Из-за этого обычные поисковые роботы с открытым исходным кодом, такие как Heritrix , должны быть настроены для фильтрации других типов MIME , или для извлечения этих документов и импорта их в специализированную базу данных и репозиторий обхода контента используется промежуточное программное обеспечение . Определить, являются ли эти документы академическими или нет, является сложной задачей и может привести к значительным накладным расходам на процесс сканирования, поэтому это выполняется как процесс последующего сканирования с использованием алгоритмов машинного обучения или регулярных выражений . Эти академические документы обычно берутся с домашних страниц факультетов и студентов или со страниц публикаций исследовательских институтов. Поскольку академические документы занимают лишь небольшую часть всех веб-страниц, хороший выбор начального числа важен для повышения эффективности этих поисковых роботов. Другие академические сканеры могут загружать простой текст и файлы HTML , которые содержат метаданные научных работ, такие как названия, статьи и аннотации. Это увеличивает общее количество документов, но значительная часть может не обеспечивать бесплатную загрузку PDF- файлов.

Поисковый робот, ориентированный на семантику

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

Политика повторного посещения

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

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

Свежесть : это двоичная мера, которая указывает, является ли локальная копия точной или нет. Свежесть страницы p в репозитории в момент времени t определяется как:

Возраст : это показатель, показывающий, насколько устарела локальная копия. Возраст страницы p в репозитории в момент времени t определяется как:

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

Задача поискового робота - поддерживать как можно более высокую среднюю свежесть страниц в своей коллекции или поддерживать как можно более низкий средний возраст страниц. Эти цели не эквивалентны: в первом случае поисковый робот заботится только о том, сколько страниц устарело, а во втором случае поисковый робот заботится о том, сколько лет локальным копиям страниц.

Эволюция свежести и возраста в веб-сканере

Чо и Гарсия-Молина изучили две простые правила повторного посещения:

  • Единая политика: это включает повторное посещение всех страниц в коллекции с одинаковой частотой, независимо от скорости их изменения.
  • Политика пропорциональности: это предполагает более частое повторное посещение страниц, которые меняются чаще. Частота посещений прямо пропорциональна (расчетной) частоте смены.

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

Чо и Гарсиа-Молина доказали удивительный результат: с точки зрения средней актуальности единообразная политика превосходит пропорциональную политику как в моделируемой сети, так и в реальном сканировании сети. Интуитивно это объясняется тем, что, поскольку веб-сканеры имеют ограничение на количество страниц, которые они могут сканировать за определенный период времени, (1) они будут выделять слишком много новых обходов для быстро меняющихся страниц за счет менее частого обновления страниц, и (2) свежесть быстро меняющихся страниц сохраняется в течение более короткого периода времени, чем свежесть страниц, которые меняются реже. Другими словами, пропорциональная политика выделяет больше ресурсов для сканирования часто обновляемых страниц, но меньше времени от них отводится на обновление.

Чтобы улучшить свежесть, сканер должен штрафовать элементы, которые меняются слишком часто. Оптимальная политика повторного посещения - это ни единообразная, ни пропорциональная политика. Оптимальный метод поддержания высокого среднего уровня свежести включает игнорирование страниц, которые слишком часто меняются, а оптимальным для поддержания низкого среднего возраста является использование частоты доступа, которая монотонно (и сублинейно) увеличивается со скоростью изменения каждой страницы. В обоих случаях оптимальное ближе к единой политике, чем к пропорциональной: как Coffman et al. обратите внимание: «чтобы минимизировать ожидаемое время устаревания, доступ к любой конкретной странице должен быть как можно более равномерным». Явные формулы для политики повторного посещения в целом недостижимы, но они получаются численно, поскольку зависят от распределения изменений страниц. Чо и Гарсиа-Молина показывают, что экспоненциальное распределение хорошо подходит для описания изменений страниц, в то время как Ipeirotis et al. покажите, как использовать статистические инструменты для обнаружения параметров, влияющих на это распределение. Обратите внимание, что политика повторного посещения, рассматриваемая здесь, рассматривает все страницы как однородные с точки зрения качества («все страницы в Интернете имеют одинаковую ценность»), что нереалистично, поэтому необходимо предоставить дополнительную информацию о качестве веб-страниц. включены для улучшения политики сканирования.

Политика вежливости

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

Как отметил Костер, использование поисковых роботов полезно для ряда задач, но за это приходится платить сообществу в целом. Стоимость использования поисковых роботов включает:

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

Частичным решением этих проблем является протокол исключения роботов , также известный как протокол robots.txt, который является стандартом для администраторов, указывающих, какие части их веб-серверов не должны быть доступны поисковым роботам. Этот стандарт не включает предложения относительно интервала посещения одного и того же сервера, хотя этот интервал является наиболее эффективным способом избежать перегрузки сервера. Недавно появившиеся коммерческие поисковые системы, такие как Google , Ask Jeeves , MSN и Yahoo! Поиск может использовать дополнительный параметр Crawl-delay: в файле robots.txt, чтобы указать количество секунд задержки между запросами.

Первый предложенный интервал между последовательными загрузками страниц составлял 60 секунд. Однако, если бы страницы загружались с такой скоростью с веб-сайта, содержащего более 100 000 страниц, через идеальное соединение с нулевой задержкой и бесконечной пропускной способностью, загрузка только этого веб-сайта целиком заняла бы более 2 месяцев; кроме того, будет использоваться только часть ресурсов этого веб-сервера. Это не кажется приемлемым.

Cho использует 10 секунд в качестве интервала для доступа, а поисковый робот WIRE по умолчанию использует 15 секунд. Сканер MercatorWeb следует политике адаптивной вежливости: если для загрузки документа с заданного сервера потребовалось t секунд, он ждет 10 t секунд перед загрузкой следующей страницы. Dill et al. используйте 1 секунду.

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

Неофициальные данные из журналов доступа показывают, что интервалы доступа известных поисковых роботов варьируются от 20 секунд до 3-4 минут. Стоит отметить, что даже если он очень вежлив и принимает все меры предосторожности, чтобы избежать перегрузки веб-серверов, некоторые жалобы от администраторов веб-серверов поступают. Брин и Пейдж отмечают, что: «... запуск поискового робота, который подключается к более чем полумиллиону серверов (...), генерирует изрядное количество электронных писем и телефонных звонков. Из-за огромного количества людей, подключенных к сети, всегда есть те, кто не знает, что такое краулер, потому что это первый, кого они видели ».

Политика распараллеливания

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

Архитектура

Архитектура высокого уровня стандартного поискового робота

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

Шкапенюк и Суэль ​​отметили, что:

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

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

Безопасность

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

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

Идентификация краулера

Поисковые роботы обычно идентифицируют себя для веб-сервера с помощью поля User-agent HTTP- запроса. Администраторы веб-сайтов обычно изучают журнал своих веб-серверов и используют поле агента пользователя, чтобы определить, какие поисковые роботы посещали веб-сервер и как часто. Поле пользовательского агента может включать URL-адрес, по которому администратор веб-сайта может найти дополнительную информацию о поисковом роботе. Изучение журнала веб-сервера - утомительная задача, поэтому некоторые администраторы используют инструменты для идентификации, отслеживания и проверки поисковых роботов. Спам-боты и другие вредоносные веб-сканеры вряд ли поместят идентифицирующую информацию в поле пользовательского агента или могут замаскировать свою личность в качестве браузера или другого известного поискового робота.

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

Сканирование глубокой паутины

Огромное количество веб-страниц лежит в глубокой или невидимой сети . Эти страницы обычно доступны только путем отправки запросов к базе данных, и обычные сканеры не могут найти эти страницы, если на них нет ссылок. Протокол и режим Google Sitemaps предназначены для обнаружения этих глубоких веб-ресурсов.

Глубокое сканирование также увеличивает количество просматриваемых веб-ссылок. Некоторые сканеры принимают только некоторые URL-адреса в <a href="URL">форме. В некоторых случаях, таких как робот Googlebot , сканирование в Интернете выполняется по всему тексту, содержащемуся внутри гипертекстового содержимого, тегов или текста.

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

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

Предвзятость поискового робота

Недавнее исследование, основанное на широкомасштабном анализе файлов robots.txt, показало, что одни поисковые роботы предпочтительнее других, а робот Google - наиболее предпочтительный поисковый робот.

Визуальные и программные сканеры

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

Метод визуального сканирования / обхода основан на том, что пользователь «обучает» часть технологии поискового робота, которая затем следует шаблонам в полуструктурированных источниках данных. Основной метод обучения визуального краулера - это выделение данных в браузере и обучение столбцов и строк. Хотя эта технология не нова, например, она легла в основу Needlebase, которая была куплена Google (в рамках более крупного приобретения ITA Labs), инвесторы и конечные пользователи продолжают рост и инвестиции в эту область.

Список поисковых роботов

Ниже приводится список опубликованных архитектур сканеров для поисковых роботов общего назначения (за исключением специализированных веб-сканеров) с кратким описанием, которое включает имена, присвоенные различным компонентам и выдающимся функциям:

Исторические веб-сканеры

  • World Wide Web Worm был поисковым роботом, который использовался для создания простого индекса заголовков документов и URL-адресов. Индекс можно найти с помощью команды grep Unix .
  • Yahoo! Slurp было названием Yahoo! Поисковый робот до Yahoo! заключил договор с Microsoft на использование вместо этого Bingbot .

Собственные поисковые роботы

  • Applebot - это поисковый робот Apple . Он поддерживает Siri и другие продукты.
  • Bingbot - это имя веб- краулера Microsoft Bing . Он заменил Msnbot .
  • Baiduspider - это поисковый робот Baidu .
  • Робот Googlebot описан довольно подробно, но ссылка касается только ранней версии его архитектуры, которая была написана на C ++ и Python . Сканер был интегрирован с процессом индексирования, поскольку анализ текста выполнялся для полнотекстового индексирования, а также для извлечения URL. Существует URL-сервер, который отправляет списки URL-адресов, которые должны быть извлечены несколькими процессами сканирования. Во время синтаксического анализа найденные URL-адреса были переданы URL-серверу, который проверял, был ли URL-адрес ранее виден. В противном случае URL-адрес был добавлен в очередь URL-сервера.
  • WebCrawler использовался для создания первого общедоступного полнотекстового индекса подмножества Интернета. Он был основан на lib-WWW для загрузки страниц и на другой программе для синтаксического анализа и упорядочивания URL-адресов для исследования веб-графа вширь. Он также включал поисковый робот в реальном времени, который переходил по ссылкам на основе сходства текста привязки с предоставленным запросом.
  • WebFountain - это распределенный модульный поисковый робот, похожий на Mercator, но написанный на C ++.
  • Xenon - это веб-сканер, используемый государственными налоговыми органами для обнаружения мошенничества.

Коммерческие поисковые роботы

Доступны следующие поисковые роботы по цене:

Сканеры с открытым исходным кодом

  • Frontera - это среда веб-сканирования, реализующая компонент границы обхода и предоставляющая примитивы масштабируемости для приложений веб-сканеров.
  • GNU Wget - это искатель, работающий из командной строки, написанный на C и выпущенный под лицензией GPL . Обычно он используется для зеркалирования веб-сайтов и FTP-сайтов.
  • GRUB был распределенным поисковым роботом с открытым исходным кодом, который Wikia Search использовала для сканирования Интернета.
  • Heritrix - это искатель архивного качества Internet Archive , разработанный для периодического архивирования моментальных снимков большой части Интернета. Он был написан на Java .
  • ht: // Dig включает поискового робота в свой механизм индексирования.
  • HTTrack использует поискового робота для создания зеркала веб-сайта для просмотра в автономном режиме. Он написан на C и выпущен под лицензией GPL .
  • mnoGoSearch - это сканер, индексатор и поисковая система, написанные на C и лицензированные под GPL (только для машин * NIX)
  • Apache Nutch - это расширяемый и масштабируемый веб-сканер, написанный на Java и выпущенный под лицензией Apache . Он основан на Apache Hadoop и может использоваться с Apache Solr или Elasticsearch .
  • Open Search Server - это версия программного обеспечения для поисковых систем и веб-сканеров под лицензией GPL .
  • PHP-Crawler - это простой сканер на основе PHP и MySQL, выпущенный под лицензией BSD .
  • Scrapy , фреймворк для веб-краулеров с открытым исходным кодом, написанный на python (под лицензией BSD ).
  • Seeks , бесплатная распространяемая поисковая система (под лицензией AGPL ).
  • StormCrawler , набор ресурсов для создания масштабируемых веб-сканеров с малой задержкой на Apache Storm ( лицензия Apache ).
  • tkWWW Robot , поисковый робот на основе веб-браузера tkWWW (под лицензией GPL ).
  • Xapian , поисковая машина, написанная на C ++.
  • YaCy , бесплатная распределенная поисковая система, построенная на принципах одноранговых сетей (под лицензией GPL ).

Смотрите также

использованная литература

дальнейшее чтение