Парсинг на php. Основы
Что такое парсер? Парсер - это скрипт, который автоматически, по шаблону, собирает информацию с выбранного ресурса, и сохраняет, в удобном для нас виде. Например, нам нужно скачать 1000 статей с сайта кулинарных рецептов. И задача парсера заключается в том, чтобы автоматически собрать ссылки на все эти 1000 статей, перейти по каждой из них, и получить полезные для нас данные.
В общем случае, парсер получает html-разметку, из которой он извлекает полезную информацию, путём доступных ему средств (DOM-парсинг, регулярные выражения, и т.п.). И, вот, эту полезную информацию, мы, на выходе, и получаем, в чистом виде. Как обрабатывать её, тоже решать нам.
И так, можно выделить 3 основных этапа парсинга:
- HTTP-запрос на сайт, для получения разметки сайта
- Извлечение полезной информации из загруженной зразметки
- Формирование отчёта по найденным данным, и дальнейшая обработка
Для того, чтобы получить разметку сайта, нужно сделать http-запрос. Вот для этого, в PHP и существует такая программа, как CURL. Это программа, которая делает запрос к указанному серверу, с указанными нами параметрами (тело запроса, заголовки, cookies, метод запроса, и т.д.). На самом деле, эта программа используется и для отправки API-запросов, однако, большее распространение она получила именно в написании ботов, и парсеров. Для запросов к API, обычно используют функцию file_get_contents, вместе с надстройкой для отправки кастомных запросов.
Curl - это не какая-то часть PHP, которая есть только в нём. CURL - это отдельная, независимая программа, являющаяся браузером, управляемым из консоли. А PHP лишь имеет модуль, который упрощает работу с этой программой, и позволяет делать запросы на собственном синтаксисе.
На практике, парсеры бывают очень полезными. Так, с помощью них можно скачать все картинки с сайта, все видео, или все статьи.
Часто новые интернет-магазины, для автоматического наполнения товарами, как раз и пользуются парсерами, которые автоматизируют работу копирования товаров, или автоматическое обновление цен, в зависимости от цен конкурентов.
При этом, парсеры могут содержать дополнительную логику по преобразованию (удаление фрагментов текста, редактирование картинок, увеличение цены на определённый процент).
Новостные сайты, агрегирующие новости одновременно с нескольких сайтов, аналогично, не могут обходиться без средств автоматизации.
Второй вариант использования CURL - это боты, которые автоматизируют рутинные действия: авторизуются под вашим аккаунтом, забирают бонусы, автоматически добавляют посты, комментарии, переходят по ссылке из писем, и т.д. На самом деле, применение этих "зверушек" очень широкое, потому, знать это стоит, хотя бы основы. Уверен, что в личном опыте, эти знания сыграют вам хорошую службу.
A cosplay costume should be assessed through sizing, construction and the pieces included in the set. The range of movement matters when the costume will be worn for several hours. For event preparation, Rem cosplay costume for photo shoots(レム 撮影用コスプレ衣装) provides the relevant costume reference. The registered character meaning stays consistent across both anchor languages. Comfort, movement and fabric care are as important as the visual design. A simple checklist keeps the outfit complete and easier to manage.
Говоря о практическом применении, последним моим парсером был скрипт, копирующий видеоуроки с сайта, сохраняя каждый видеоурок в отдельную папку.
Ещё в начале пути я интересовался, как создать парсер на php. И, на удивление, это оказалось достаточно просто. Для того, чтобы понять, как парсеры работают внутри, прочитайте две вводных статьи:
- Как парсить с помощью file_get_contents
- Как парсить с помощью curl - основы PHP CURL. Объяснение работы функции
curl_init
Эта статья является исключительно теорией. Она только объясняет основные термины, которые нужны для понимания того, как работают парсеры. Потому, чтобы научиться писать хорошие парсеры, нужно писать много парсеров, и читать последующие статьи по теме =)