Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Парсинг поисковой системы - это процесс сбора URL-адресов , описаний или другой информации из поисковых систем, таких как Google, Bing или Yahoo. Это особая форма очистки экрана или веб-очистки, предназначенная только для поисковых систем.
Чаще всего крупные поставщики поисковой оптимизации (SEO) зависят от регулярного извлечения ключевых слов из поисковых систем, особенно Google, для отслеживания конкурентной позиции веб-сайтов своих клиентов по релевантным ключевым словам или их статусу индексации .
Поисковые системы, такие как Google, не разрешают какой-либо автоматический доступ к своим услугам [1], но с юридической точки зрения нет известных случаев или нарушенных законов.
Процесс входа на веб-сайт и извлечения данных в автоматическом режиме также часто называют « сканированием ». Поисковые системы, такие как Google, Bing или Yahoo, получают почти все свои данные от роботов-автоматов.
Трудности [ править ]
Google - безусловно, крупнейшая поисковая система с наибольшим числом пользователей и наибольшим доходом от креативной рекламы, что делает Google самой важной поисковой системой для компаний, занимающихся поисковой оптимизацией. [2]
Google не предпринимает никаких действий против соскабливания, вероятно, из соображений самозащиты. Тем не менее, Google использует ряд защитных методов, из-за которых обработка результатов становится сложной задачей.
- Google тестирует User-Agent (тип браузера) HTTP-запросов и обслуживает разные страницы в зависимости от User-Agent. Google автоматически отклоняет пользовательских агентов, которые, похоже, исходят от возможного автоматизированного бота. [Часть страницы с ошибкой Google: см. Условия использования Google, размещенные по адресу http://www.google.com/terms_of_service.html ] Типичным примером является использование браузера командной строки cURL , Google напрямую откажется обслуживать любые страницы к нему, в то время как Bing немного снисходительнее, Bing, похоже, не заботится о пользовательских агентах. [3]
- Google использует сложную систему ограничения скорости запросов, которая различается для каждого языка, страны, агента пользователя, а также зависит от параметров поиска по ключевым словам и ключевым словам. Ограничение скорости может сделать его непредсказуемым при доступе к автоматизированной поисковой системе, поскольку модели поведения неизвестны внешнему разработчику или пользователю.
- Ограничения сети и IP также являются частью систем защиты от парсинга. Поисковые системы нелегко обмануть, переключившись на другой IP-адрес, в то время как использование прокси-серверов является очень важной частью успешного парсинга. Также важны разнообразие и оскорбительная история IP.
- Оскорбительные IP-адреса и нарушающие IP-сети можно легко сохранить в базе данных черного списка, чтобы гораздо быстрее выявлять нарушителей. Тот факт, что большинство интернет-провайдеров предоставляют клиентам динамические IP-адреса, требует, чтобы такие автоматические запреты были только временными, чтобы не блокировать невиновных пользователей.
- Обнаружение на основе поведения - самая сложная система защиты. Поисковые системы обслуживают свои страницы миллионам пользователей каждый день, что дает большой объем информации о поведении. Скрипт парсинга или бот не ведет себя как настоящий пользователь, за исключением нестандартного времени доступа, задержек и сеансов, которые собираемые ключевые слова могут быть связаны друг с другом или включать необычные параметры. У Google, например, есть очень сложная система анализа поведения, возможно, с использованием программного обеспечения глубокого обучения для обнаружения необычных шаблонов доступа. Он может обнаруживать необычную активность намного быстрее, чем другие поисковые системы. [4]
- Разметка HTML изменяется в зависимости от методов, используемых для сбора содержимого веб-сайта, даже небольшое изменение в данных HTML может привести к поломке инструмента очистки до тех пор, пока он не будет обновлен.
- Общие изменения в системах обнаружения. В последние годы поисковые системы ужесточили свои системы обнаружения почти месяц за месяцем, что делает надежный парсинг все более и более сложным, поскольку разработчикам необходимо регулярно экспериментировать и адаптировать свой код. [5]
Обнаружение [ править ]
Когда защита поисковой системы считает, что доступ может быть автоматизирован, поисковая система может отреагировать иначе.
Первый уровень защиты - это страница с вводом кода [6], где пользователю предлагается подтвердить, что он настоящий человек, а не бот или инструмент. Решение капчи создаст файл cookie, который снова разрешит доступ к поисковой системе на некоторое время. Примерно через день страница с капчей снова удаляется.
Второй уровень защиты - это аналогичная страница с ошибкой, но без капчи, в этом случае пользователь полностью заблокирован от использования поисковой системы до тех пор, пока временная блокировка не будет снята или пользователь не изменит свой IP-адрес.
Третий уровень защиты - это долговременная блокировка всего сегмента сети. Google уже несколько месяцев блокирует большие сетевые блоки. Такая блокировка, скорее всего, запускается администратором и происходит только в том случае, если инструмент парсинга отправляет очень большое количество запросов.
Все эти формы обнаружения могут также произойти с обычным пользователем, особенно с пользователями, использующими один и тот же IP-адрес или класс сети (диапазоны IPV4, а также диапазоны IPv6).
Способы очистки Google, Bing или Yahoo [ править ]
Для успешной очистки поисковой системы двумя основными факторами являются время и количество.
Чем больше ключевых слов пользователю нужно очистить, и чем меньше времени на выполнение работы, тем сложнее будет очистка и тем более развитым должен быть скрипт или инструмент очистки.
Скрипты парсинга должны решить несколько технических проблем: [7]
- Ротация IP с использованием прокси (прокси не должны использоваться совместно и не заноситься в черные списки)
- Правильное управление временем, время между изменениями ключевых слов, разбиение на страницы, а также правильно размещенные задержки. Эффективная долгосрочная скорость очистки может варьироваться от 3–5 запросов (ключевых слов или страниц) в час до 100 и более в час для каждого используемого IP-адреса / прокси. . Качество IP-адресов, методы парсинга, запрошенные ключевые слова и запрошенный язык / страна могут сильно повлиять на возможную максимальную скорость.
- Правильная обработка параметров URL, файлов cookie, а также заголовков HTTP для имитации пользователя в обычном браузере [8]
- Разбор HTML DOM (извлечение URL-адресов, описаний, позиции в рейтинге, дополнительных ссылок и других релевантных данных из HTML-кода)
- Обработка ошибок, автоматическая реакция на капчу или страницы блокировки и другие необычные ответы [9]
- Определение Captcha объяснено, как упомянуто выше [10]
Примером программного обеспечения для парсинга с открытым исходным кодом, в котором используются вышеупомянутые методы, является GoogleScraper. [8] Эта структура контролирует браузеры по протоколу DevTools и затрудняет обнаружение Google, что браузер автоматизирован.
Языки программирования [ править ]
При разработке парсера для поисковой системы можно использовать практически любой язык программирования. Хотя, в зависимости от требований к производительности, некоторые языки будут благоприятными.
PHP - это широко используемый язык для написания скриптов парсинга для веб-сайтов или серверных служб, поскольку он имеет встроенные мощные возможности (парсеры DOM, libcURL); однако его использование памяти обычно в 10 раз превышает коэффициент использования аналогичного кода C / C ++. Ruby on Rails, а также Python также часто используются для автоматизированного парсинга. Для достижения максимальной производительности следует рассмотреть возможность использования парсеров C ++ DOM.
Кроме того, сценарии bash могут использоваться вместе с cURL в качестве инструмента командной строки для очистки поисковой системы.
Инструменты и скрипты [ править ]
При разработке парсера поисковой системы доступно несколько существующих инструментов и библиотек, которые можно использовать, расширять или просто анализировать, чтобы извлечь уроки.
- iMacros - бесплатный набор инструментов для автоматизации браузера, который можно использовать для парсинга очень небольших объемов из пользовательского браузера [11]
- cURL - браузер командной строки для автоматизации и тестирования, а также мощная библиотека взаимодействия HTTP с открытым исходным кодом, доступная для большого количества языков программирования. [12]
- google-search - пакет Go для очистки Google. [13]
- GoogleScraper - модуль Python для очистки различных поисковых систем (таких как Google, Яндекс, Bing, Duckduckgo, Baidu и других) с помощью прокси (socks4 / 5, http-прокси). Инструмент включает поддержку асинхронной сети и может управлять реальными браузерами, чтобы уменьшить вероятность обнаружения. [14]
- se-scraper - наследник GoogleScraper. Очищайте поисковые системы одновременно с разными прокси-серверами. [15]
Правовой [ править ]
При парсинге веб-сайтов и сервисов юридическая часть часто является большой проблемой для компаний, для парсинга это сильно зависит от страны, из которой происходит парсинг пользователя / компании, а также от того, какие данные или веб-сайт удаляются. С множеством различных судебных решений по всему миру. [16] [17] [18] Однако, когда дело доходит до очистки поисковых систем, ситуация иная, поисковые системы обычно не перечисляют интеллектуальную собственность, поскольку они просто повторяют или обобщают информацию, которую они скопировали с других веб-сайтов.
Самый крупный публично известный инцидент, связанный с очисткой поисковой системы, произошел в 2011 году, когда Microsoft была поймана на очистке неизвестных ключевых слов от Google для своего собственного, довольно нового сервиса Bing. ( [19] ) Но даже этот инцидент не закончился судебным разбирательством.
Одна из возможных причин может заключаться в том, что поисковые системы, такие как Google, получают почти все свои данные, очищая миллионы общедоступных веб-сайтов, также не читая и не принимая эти условия. Судебный процесс, выигранный Google против Microsoft, может поставить под угрозу весь их бизнес.
См. Также [ править ]
- Сравнение парсеров HTML
Ссылки [ править ]
- ^ «Автоматические запросы - Справка Search Console» . support.google.com . Проверено 2 апреля 2017 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Google по-прежнему остается самой популярной поисковой системой в мире, но доля уникальных поисковиков немного снижается» . searchchengineland.com . 11 февраля 2013 г.
- ^ "Почему curl и wget приводят к 403 запрещенным?" . unix.stackexchange.com .
- ^ "Google знает, что я использую Tor Browser?" . tor.stackexchange.com .
- ^ "Группы Google" . google.com .
- ^ «Мой компьютер отправляет автоматические запросы - reCAPTCHA Help» . support.google.com . Проверено 2 апреля 2017 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Сбор рейтингов Google для развлечения и прибыли» . google-rank-checker.squabbel.com .
- ^ a b "Фреймворк Python3 GoogleScraper" . скребущий .
- ^ Deniel Iblika (3 января 2018). "De Online Marketing Diensten van DoubleSmart" . DoubleSmart (на голландском). Diensten . Проверено 16 января 2019 . CS1 maint: обескураженный параметр ( ссылка )
- ↑ Ян Янссен (26 сентября 2019 г.). "Услуги интернет-маркетинга от SEO SNEL" . SEO SNEL (на голландском языке). Услуги . Проверено 26 сентября 2019 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ "iMacros для извлечения результатов Google" . stackoverflow.com . Проверено 4 апреля 2017 .
- ^ "libcurl - многопротокольная библиотека передачи файлов" . curl.haxx.se .
- ^ «Пакет Go для очистки Google» - через GitHub.
- ^ «Модуль Python для очистки нескольких поисковых систем (таких как Google, Яндекс, Bing, Duckduckgo, ...). Включая поддержку асинхронных сетей: NikolaiT / GoogleScraper» . 15 января 2019 г. - через GitHub.
- ^ Tschacher Николай (2020-11-17), NikolaiT / се-скребок , извлекаться 2020-11-19
- ^ "Является ли веб-парсинг законным?" . Икреон (блог).
- ^ "Апелляционный суд отменяет осуждение и приговор хакеру / троллю" weev "[Обновлено]" . arstechnica.com .
- ^ «Может ли очистка контента, не нарушающего авторские права, стать нарушением авторских прав ... из-за того, как работают парсеры?» . www.techdirt.com .
- ^ Сингел, Райан. «Google ловит копирование Bing; Microsoft говорит:« Ну и что? » » . Проводной .
Внешние ссылки [ править ]
- Scrapy Фреймворк Python с открытым исходным кодом, не предназначенный для парсинга поисковых систем, но регулярно используемый в качестве базы и с большим количеством пользователей.
- Исходный код парсинга Compunect - ряд хорошо известных скриптов парсинга PHP с открытым исходным кодом, включая регулярно поддерживаемый парсер Google Search для парсинга рекламы и обычных страниц результатов.
- Justone бесплатных скриптов парсинга - информация о парсинге Google, а также скриптах PHP с открытым исходным кодом (последнее обновление - середина 2016 г.)
- Исходный код Scraping.Services - классы Python и PHP с открытым исходным кодом для стороннего API парсинга. (обновлено в январе 2017 г., бесплатно для частного использования)
- PHP Simpledom Широко распространенный анализатор PHP DOM с открытым исходным кодом для интерпретации HTML-кода в переменные.
- SerpApi Сторонний сервис, базирующийся в США, позволяющий легально очищать поисковые системы.