Лучший опыт

Вы новичок в мире веб-краул? ... Web Crawler 101: что это такое и как работают веб-краулеры? | Обзоры лучших прокси-серверов

Web Crawler 101: что это такое и как работают веб-краулеры? | Обзоры лучших прокси-серверов...

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

ТОП

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

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

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

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

Как работают веб-краулеры?

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

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

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

Как краулеры идентифицируют себя

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

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

Предвзятость краулеров — это сценарий, при котором веб-сайты в Интернете отдают предпочтение некоторым избранным краулерам и позволяют им просматривать свои страницы, лишая при этом других. Googlebot, принадлежащий компании Google, пользуется этим больше, чем любой другой автоматический бот в Интернете. На самом деле, большинство сайтов разрешают Google только ползать по их страницам, не допуская других. Из-за этого краулеры не идентифицируют себя так, как должны, и в итоге используют строку User-Agent Googlebot или некоторые популярные веб-браузеры, такие как Google Chrome и Firefox.

Применение веб-краулинга и краулеров

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

  • Веб-индексирование

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

  • Сбор и агрегирование данных

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

  • Обнаружение эксплойтов

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

  • Разработка специализированных инструментов

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

Проблемы, с которыми сталкиваются веб-краулеры

Веб-краулеры не лишены своих проблем. Некоторые из проблем, с которыми сталкиваются веб-краулеры и их разработчики, рассмотрены ниже.

  • Системы защиты сайтов от ботов

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

  • Глубокая паутина

Дело в том, что как бы краулер ни старался проползти по Интернету, все равно существуют разделы Интернета, недоступные для краулеров, особенно для тех, которые не имеют предварительного представления о страницах, которые они будут посещать. Фактически, по некоторым данным, только около 40-70 процентов веб-страниц в Интернете доступны для краулеров. Это общедоступные веб-страницы. Другие страницы, включая новые и «сиротские», на которые не ссылаются никакие другие веб-страницы, не будут обнаружены веб-краулерами. Кроме того, в стороне остаются частные страницы, например, те, которые находятся за платными стенами и логинами.

  • JavaScript Rich Pages

Если вы не знаете, большинство краулеров в Интернете становятся бесполезными при попадании на Ajax-интегрированную веб-страницу. Это происходит потому, что традиционно веб-сайты разрабатывались как статичные, и модель проста — посылается веб-запрос, и в ответ приходит HTML-файл с запрашиваемым содержимым. Краулеры были разработаны для этой модели, и все, что им нужно делать, это разбирать необходимые данные. Появление AJAX изменило эту модель, поскольку содержимое страницы отображается и загружается после определенных событий JavaScript. Поскольку веб-краулеры не предназначены для этого, им трудно извлекать данные с таких веб-страниц. Однако некоторые веб-краулеры используют парсинг экрана и другие методы для решения этой проблемы.

Чем веб-краулеры отличаются от веб-парсеров

Веб-краулеры и парсеры или связанные с ними процессы (crawling и scraping) используются взаимозаменяемо, поэтому многие считают, что это одно и то же. Хотя и веб-краулеры, и парсеры занимаются извлечением данных с веб-страниц с помощью автоматизированных средств, это не одно и то же. Веб-краулеры обычно не имеют полного списка URL-адресов, которые они будут посещать — у них есть только начальные URL-адреса, и на их основе они находят другие URL-адреса, которые им нужно посетить.

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

Как создавать веб-краулеры

Когда вы попробуете создать простой веб-парсер, который просматривает несколько тысяч страниц, у вас сложится мнение, что создание веб-парсеров — это легкая задача. Однако когда вам нужно создать веб-парсер, который работает в больших масштабах, перебирает миллионы веб-страниц, о которых он ничего не знает, и делает это непрерывно каждый день, вы поймете, что это нелегкая задача. Вам нужно будет продумать его инженерное обеспечение, предотвратить создание базы данных и решить вопросы ввода-вывода. В целом, веб-краулеры могут быть построены с использованием любого языка программирования, который вы пожелаете. В то время как Python кажется наиболее предпочтительным языком среди многих мелких разработчиков краулеров, C и C++ активно используются крупными игроками. Конкретные требования вашего проекта определят, какие функции вы включите в свой краулер. Но вам необходимо вести список URL, которые необходимо посетить, и постоянно пополнять его каждый раз, когда вы встречаете новый URL. Однако не забудьте нормализовать URL, чтобы убедиться, что в вашем списке нет дубликатов URL. Краулеры никогда не могут быть эффективными при использовании одного потока. Он должен быть многопоточным, и вы должны убедиться, что он не создает никаких проблем для базы данных. По этическим соображениям важно соблюдать robots.txt и избегать посещения сайтов, которые не хотят, чтобы по ним ползали. Однако это не является обязательным, так как веб-ползание в целом законно — однако оно может быть незаконным в зависимости от того, для чего вы используете данные. Поэтому лучше всего обратиться к услугам юриста. Предоставление вашему краулеру уникального User-Agent также является хорошей практикой, но по некоторым очевидным причинам вы, возможно, захотите подражать обычным браузерам.

Заключение

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