Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Сбор данных с интернета : Теория и Решения Немного теории о Сборе Данных с Веба


Теория и Практика сбора информации с интернет

Сбор Данных с Веба (Web Data Mining) это процесс при котором данные опубликованные в интернете извлекаются для дальнейшей с ними работы. Это процесс называется Парсинг, от английского Parse (Разбор). Т.е мы получаем данные в формате которые представлены на сайте и разбираем их на части. Далее мы записываем или используем эти данные в нужных нам целях. Вкратце рассмотрим сбор данных информации, представленной этими способами :

1.API для получения данных

Самый нативный метод, не требующих от нас больших усилий, поэтому рассмотрю его первым. На некоторых сайтах, уже имеются средства (API), которые позволяют запросить то что нас интересует. Например Google API к YouTube. Как видно из описания все сводится к отсылке HTTP запросов и анализу содержимого их ответов (обычно в виде XML). Для удобства пользования все это доступно на различных языках и позволяет с минимальными усилиями получить необходимые нам данные.

Такие интерфейсы доступны для многих крупных проектов, и существенно облегчают сбор данных. Минус в этом что чаще всего это работает с некоторыми ограничениями, самый существенный из которых: это чтобы получать большие объемы данных, нам нужно регистрироваться и платить за возможность использования такого сервиса (или еще что нибудь, каким либо образом усложняющее его использование) . Конечно это не везде и не всегда, но перед тем как начать использовать такой метод стоит внимательно прочитать про ограничения и условия использования по данному API.

2. Информация в Пиксельном виде (картинки, флэш, встроенные в браузер компоненты на которых работают сайты)

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

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

К счастью таких сайтов не так много или такие работы оплачиваются достаточно хорошо и даже это еще и бывает очень интересно. В дальнейшем я рассмотрю этот процсее более подробно. Пока просто скажу что если мы сохранили информацию и можем ее как-то увидеть и прочесть сами, то сделать это автоматически или автоматизировано всегда сможем, только это займет определенные усилия. Тут разве что хочу добавить что существуют онлайн-сервисы распознания сложных графических изображений (капч), типа Antigateи программы по распознаванию изображений типа Abby Screenshot Reader. Эти инструменты могут сильно облегчить нам этот процесс.

3. HTML содержимое сайтов

Самый распространенный случай. Большинство сайтов в Вебе независимо от движка на котором они работают выдают нам при запросе HTML содержимое. Получить содержимое страницы сайта мы можем как прямым запросом так и эмуляцией действия пользователя в браузере.

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

Но в последнее время на все большем количестве сайтов нужная нам информация получается после того как страница будет загружена в браузер и обработана через Java Scripts. Т.е при прямом запросе мы не получим то что нам требуется. Тут на помощь приходят компоненты и программы которые позволяют эмулировать работу браузера, например Human Emulator(и другие), в разработке которого я участвую. Т.е мы указываем что нам надо загрузить страничку, затем ждем когда на ней покажутся вся необходимая нам информация, а затем уже парсим ее и используем.

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


В избранное