Внутреннее устройство поискового робота

Введение

За последние два десятилетия Интернет стал свидетелем феноменального роста. Объем данных в Интернете растет в геометрической прогрессии.

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

В Интернете более 2 миллиардов страниц. И более 5 миллиардов пользователей активно потребляют контент. По оценкам, это число будет расти по мере проникновения Интернета в отдаленные части мира.

Всякий раз, когда вы вводите поисковый запрос в любой поисковой системе, он возвращает результаты в течение нескольких миллисекунд (~ 0,6–0,7 секунды). Кроме того, количество веб-страниц, которые он просматривает, исчисляется миллиардами. На изображении ниже показано, сколько страниц Google просканировал для случайного поискового запроса.

Задумывались ли вы, что заставляет любую поисковую систему эффективно и быстро выдавать результаты? Откуда он узнает веб-страницы? Как новая веб-страница обнаруживается и отображается в результатах поиска?

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

Далее мы рассмотрим работу поискового робота. Мы рассмотрим различные поисковые роботы в Интернете и поймем процесс обнаружения новых веб-сайтов.

Что такое индексация?

Предположим, вы читаете книгу, например Руководство по проектированию алгоритмов, в публичной библиотеке. Допустим, вы читаете книгу в бумажном виде. Предположим, вы хотите найти такой термин, как Binary Search, или Selection Sorting,, как бы вы это сделали?

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

Вам придется снова просмотреть каждую книгу и проверить, есть ли на каждой странице два термина. Не будет ли это трудоемким и громоздким процессом?

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

Как правило, в книгах последние несколько страниц посвящены индексу. Индексная страница содержит разные слова и их повторения. Общие слова, такие как the, if, and, a, и т. д., пропускаются в указателе. На изображении ниже показан пример указателя для книги.

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

Если вы хотите найти определенное слово, вы перейдете к указателю и найдете страницы, на которых оно встречается. Допустим, вы хотите найти вхождение слова Binary Search,, вы найдете его на странице 101 и 104.

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

Как поисковая система индексирует веб-страницы?

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

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

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

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

Общий процесс, который приводит в действие любую поисковую систему, состоит из следующего:

  • Найти все новые и обновленные веб-страницы в Интернете.
  • Создайте индекс для всех обнаруженных веб-страниц.
  • Выполните поисковый запрос пользователя и отобразите релевантные результаты пользователю.

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

Что такое веб-краулер?

Допустим, вам интересно узнать о кубинской революции. Вы будете вводить Cuban revolution в Google или любой другой поисковой системе. На первой странице, скорее всего, будет ссылка на Википедию.

Теперь вы просматриваете страницу Википедии, посвященную кубинской революции. Предположим, вы нашли статью увлекательной и хотите узнать больше о революционерах. Там будут гиперссылки на страницы таких революционеров, как Че Гевара, Фидель Кастро, Рауль Кастро и т. д. Допустим, вы находитесь на странице Че Гевара. Вы найдете гиперссылки на Аргентину, мотоциклетные дневники и т. д. Это будет продолжаться, и через несколько часов вы изучите еще 100 страниц.

Интернет – это огромный океан информации. Лучшее в Интернете то, что веб-страницы могут ссылаться друг на друга через гиперссылки. В приведенном выше примере вы начали с Cuban revolution, но в итоге оказались на странице Википедии Argentina's. Вы сделали то, что должен делать поисковый робот.

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

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

Почему веб-сканеры называются пауками?

Большинство веб-сайтов являются частью всемирной паутины (www). Сканеры обходят все веб-сайты точно так же, как паук ползает по своей паутине. Таким образом, поисковые роботы также называются пауками.

Работа веб-краулера

Каждый поисковый робот начинается с набора URL-адресов. Эти URL-адреса известны как исходные URL-адреса. Сканер перебирает каждый URL-адрес и загружает веб-страницу.

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

Разбор

Искатель сначала анализирует HTML-страницу и находит все страницы, на которые ссылается текущая страница. На следующем рисунке показано, как страница хранит ссылки на другие страницы.

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

Алгоритм

Сканер просматривает все URL-адреса в ширину. Все URL-адреса, на которые ссылается страница, добавляются в конец очереди. Очередь представляет собой очередь FIFO, в которой URL-адреса выбираются спереди и добавляются сзади.

Дубликат чека

Две веб-страницы могут хранить ссылку на один и тот же URL-адрес. Например: веб-страницы Джорджа Вашингтона и Билла Клинтона будут иметь ссылку на веб-страницу Америки. В этом случае краулер дважды посетит веб-страницу Америки. Этого обычно избегают путем дублирования проверки. Если сканер обнаружит, что веб-страница была посещена, он пропустит ее повторное посещение.

Новая информация

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

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

Типы поисковых роботов в Интернете

Ниже приведены некоторые боты из известных поисковых систем:

  • Googlebot: поисковый робот Google. Имеет два гусеничного хода. Один из них — сканер для настольных компьютеров, а другой — сканер для мобильных устройств.
  • Bingbot: сканирует Интернет и собирает веб-страницы для поисковой системы Bing. Принадлежит корпорации Майкрософт.
  • Baidubot: поддерживает поисковую систему Baidu.
  • DuckDuckBot: поисковый робот для поисковой системы DuckDuckGo.

Что такое файл robots.txt?

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

Более того, на многих веб-страницах есть файлы статических изображений. Скачивание и просмотр этих файлов не имеет отношения к поисковым роботам (если только это не поиск изображений). Следовательно, на каждом веб-сайте указан файл robot.txt. Этот файл находится в корне сайта. Например: For Facebook.com, это www.facebook.com/robots.txt.

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

Давайте разберемся с файлом robot.txt на примере. Вы можете зайти на любой веб-сайт и найти файл robots.txt, добавив /robots.txt. Я посещаю www.facebook.com/robots.txt. Ниже приведено содержимое этого файла: -

Каждый поисковый робот отправляет User-Agent при отправке HTTP-запроса на веб-сервер. В приведенном выше файле для каждого User-Agent перечислены URL-адреса, к которым ему не следует обращаться. В приведенном выше случае AppleBot не может получить доступ к веб-страницам /album.php , /photo.php , /sharer.php и т. д.

Таким образом, если AppleBot начнет сканировать www.facebook.com, он не будет посещать запрещенные URL-адреса. То же самое относится и к другим ботам, таким как BaiduSpider, BingBotи т. д.

Веб-сканирование против веб-скрейпинга

Web Scraping — это процесс загрузки данных с веб-сайта и их сохранения на компьютере. Например: Yahoo Finance публикует информацию о ценах на все зарегистрированные акции. Если вы хотите проанализировать данные, веб-скребок извлечет их и сохранит на листе Excel.

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

В отличие от поискового робота, парсер не учитывает файл robot.txt. В результате парсер потенциально может перегрузить внутренний веб-сервер. Парсер не посещает все веб-сайты в Интернете, как краулер.

Заключение

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

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

Процесс очистки веб-страниц используется для загрузки информации с веб-сайта. Утилизация не учитывает нагрузку на внутренний сервер и не учитывает файл robot.txt.

Рекомендации

Подпишитесь на DDIntel Здесь.

Посетите наш сайт здесь: https://www.datadriveninvestor.com

Присоединяйтесь к нашей сети здесь: https://datadriveninvestor.com/collaborate