Этапы парсинга

Парсинг html-страницы представляет из себя процесс, который можно разбить на три этапа:

  1. Получение исходного кода веб-страницы. В разных языках для этого предусмотрены различные способы, Например, в PHP чаще всего используют библиотеку cURL или же встроенную функцию file_get_contents.
  2. Извлечение из html-кода необходимых данных. Получив страницу, необходимо обработать её – отделить обычный текст от гипертекстовой разметки, выстроить иерархическое дерево элементов документа, корректно среагировать на невалидный код, вычленить со страницы именно ту информацию, ради которой и затевается весь сыр-бор. Можно, конечно же, использовать для этого регулярные выражения, однако есть более удобный путь – специализированные библиотеки.
  3. Фиксация результата. Благополучно обработав данные на странице, требуется их сохранить в необходимом виде для последующей обработки. Спарсенное обычно заносится в базу данных, однако есть и другие варианты. Иногда требуется записать в CSV-файл или строить иерархические JSON-структуры, иногда сконвертировать в excel-таблицу, а может даже сгенерировать динамический rss-поток.

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


Обход всех нужных страниц сайта обеспечивается разными способами.

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

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

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

Разумеется, совмещать разные методы ничто не мешает.

См. также: Парсинг: Что? Зачем? Как?, Что понадобится?, Импорт/экспорт контента, Синтаксический анализ, Экспорт данных