HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Parsing - это…</a><ul><li><a>Для чего необходим</a></li>
1 <ul><li><a>Parsing - это…</a><ul><li><a>Для чего необходим</a></li>
2 <li><a>Основа функционирования</a></li>
2 <li><a>Основа функционирования</a></li>
3 </ul></li>
3 </ul></li>
4 <li><a>Почему PHP</a></li>
4 <li><a>Почему PHP</a></li>
5 <li><a>Parse URL - особенности</a><ul><li><a>О параметрах</a></li>
5 <li><a>Parse URL - особенности</a><ul><li><a>О параметрах</a></li>
6 <li><a>Возвращаемые значения</a></li>
6 <li><a>Возвращаемые значения</a></li>
7 </ul></li>
7 </ul></li>
8 <li><a>Наглядные примеры - CURL и phpQuery</a><ul><li><a>Предварительная подготовка</a></li>
8 <li><a>Наглядные примеры - CURL и phpQuery</a><ul><li><a>Предварительная подготовка</a></li>
9 <li><a>CURL и парсинг</a></li>
9 <li><a>CURL и парсинг</a></li>
10 <li><a>PhpQuery - принцип работы</a></li>
10 <li><a>PhpQuery - принцип работы</a></li>
11 </ul></li>
11 </ul></li>
12 </ul><p><a>Серверная разработка</a>требует от программиста определенного спектра знаний и навыков. Весьма полезным покажется парсер. Главное разобраться, каким образом его реализовать на PHP.</p>
12 </ul><p><a>Серверная разработка</a>требует от программиста определенного спектра знаний и навыков. Весьма полезным покажется парсер. Главное разобраться, каким образом его реализовать на PHP.</p>
13 <p>Статья расскажет о том, что такое парсинг, для чего он нужен и как функционирует. В ней будут приведены наглядные примеры, которые пригодятся для любого URL при веб-разработке.</p>
13 <p>Статья расскажет о том, что такое парсинг, для чего он нужен и как функционирует. В ней будут приведены наглядные примеры, которые пригодятся для любого URL при веб-разработке.</p>
14 <h2>Parsing - это…</h2>
14 <h2>Parsing - это…</h2>
15 <p>Парсер - программное обеспечение, которое осуществляет анализ входных текстовых сведений. После этого занимается извлечением необходимой информации, на основе которых будет производиться результат в заранее заданном формате.</p>
15 <p>Парсер - программное обеспечение, которое осуществляет анализ входных текстовых сведений. После этого занимается извлечением необходимой информации, на основе которых будет производиться результат в заранее заданном формате.</p>
16 <p>На PHP parser работает так:</p>
16 <p>На PHP parser работает так:</p>
17 <ul><li>скрипт создает запрос по URL;</li>
17 <ul><li>скрипт создает запрос по URL;</li>
18 <li>осуществляется получение ответа от сервера в виде HTML или ином текстовом формате;</li>
18 <li>осуществляется получение ответа от сервера в виде HTML или ином текстовом формате;</li>
19 <li>сведения анализируются;</li>
19 <li>сведения анализируются;</li>
20 <li>из электронных материалов URL извлекаются (парсятся) нужные элементы;</li>
20 <li>из электронных материалов URL извлекаются (парсятся) нужные элементы;</li>
21 <li>формируется и выводится результат.</li>
21 <li>формируется и выводится результат.</li>
22 </ul><p>Итог можно записывать в файлы и базы данных, а также непосредственно выводить на дисплей устройства.</p>
22 </ul><p>Итог можно записывать в файлы и базы данных, а также непосредственно выводить на дисплей устройства.</p>
23 <h3>Для чего необходим</h3>
23 <h3>Для чего необходим</h3>
24 <p>При изучении парсеров в PHP стоит выяснить, для чего они вообще нужны. Подобное программное обеспечение:</p>
24 <p>При изучении парсеров в PHP стоит выяснить, для чего они вообще нужны. Подобное программное обеспечение:</p>
25 <ol><li>Автоматизируют информацию в пределах URL.</li>
25 <ol><li>Автоматизируют информацию в пределах URL.</li>
26 <li>Собирают и обрабатывают<a>большие объемы</a>данных.</li>
26 <li>Собирают и обрабатывают<a>большие объемы</a>данных.</li>
27 <li>Сравнивают содержимое страниц с заданными параметрами. Пример - поисковые системы.</li>
27 <li>Сравнивают содержимое страниц с заданными параметрами. Пример - поисковые системы.</li>
28 <li>Помогают организовывать спам-рассылку.</li>
28 <li>Помогают организовывать спам-рассылку.</li>
29 </ol><p>А еще парсером на PHP можно наполнять собственные веб-ресурсы "чужим" контентом. Подобные проекты стараются блокировать, но это не всегда выходит быстро.</p>
29 </ol><p>А еще парсером на PHP можно наполнять собственные веб-ресурсы "чужим" контентом. Подобные проекты стараются блокировать, но это не всегда выходит быстро.</p>
30 <p>Parser избавляет от перепечатывания информации однотипного характера. Пример - наполнение интернет-магазина тем или иным товаром.</p>
30 <p>Parser избавляет от перепечатывания информации однотипного характера. Пример - наполнение интернет-магазина тем или иным товаром.</p>
31 <h3>Основа функционирования</h3>
31 <h3>Основа функционирования</h3>
32 <p>Если мы парсим текст, не стоит думать, что парсер будет его читать. Соответствующее ПО:</p>
32 <p>Если мы парсим текст, не стоит думать, что парсер будет его читать. Соответствующее ПО:</p>
33 <ul><li>получает набор команд и инструкций от разработчика;</li>
33 <ul><li>получает набор команд и инструкций от разработчика;</li>
34 <li>считывает слова;</li>
34 <li>считывает слова;</li>
35 <li>сравнивает то, что обнаружено в Сети согласно заданным принципам.</li>
35 <li>сравнивает то, что обнаружено в Сети согласно заданным принципам.</li>
36 </ul><p>Далее происходит непосредственная обработка. То, как робот ведет себя с информацией командной строки, носит название регулярного выражения. В русском языке также встречается в виде понятий "маски" и "шаблоны".</p>
36 </ul><p>Далее происходит непосредственная обработка. То, как робот ведет себя с информацией командной строки, носит название регулярного выражения. В русском языке также встречается в виде понятий "маски" и "шаблоны".</p>
37 <p>Для того, чтобы парсер воспринимал регулярные выражения, он должен быть составлен на языке, который поддерживает оные при использовании строк. PHP - один из вариантов, который пользуется спросом.</p>
37 <p>Для того, чтобы парсер воспринимал регулярные выражения, он должен быть составлен на языке, который поддерживает оные при использовании строк. PHP - один из вариантов, который пользуется спросом.</p>
38 <p>Регулярные выражения для URL прописываются через синтаксис<a>Unix</a>. Он уже устарел и редко применяется на практике при разработке софта. Но за счет свойств обратной совместимости по сей день Юникс задействован программистами и системными администраторами.</p>
38 <p>Регулярные выражения для URL прописываются через синтаксис<a>Unix</a>. Он уже устарел и редко применяется на практике при разработке софта. Но за счет свойств обратной совместимости по сей день Юникс задействован программистами и системными администраторами.</p>
39 <p>За счет Unix можно регулировать активность parsing. В зависимости от соответствующего значения будет меняться длина строки, копируемой с веб-страницы. Сверхжадный парсинг может считывать весь контент, а также HTML-кодификацию и внешние таблицы CSS.</p>
39 <p>За счет Unix можно регулировать активность parsing. В зависимости от соответствующего значения будет меняться длина строки, копируемой с веб-страницы. Сверхжадный парсинг может считывать весь контент, а также HTML-кодификацию и внешние таблицы CSS.</p>
40 <h2>Почему PHP</h2>
40 <h2>Почему PHP</h2>
41 <p>PHP -<a>язык программирования</a>, который используется для работы с веб-контентом. Позволяет создавать разнообразный софт: от бизнес-аналитики до игр. Его функции позволяют контактировать с парсерами максимально комфортно:</p>
41 <p>PHP -<a>язык программирования</a>, который используется для работы с веб-контентом. Позволяет создавать разнообразный софт: от бизнес-аналитики до игр. Его функции позволяют контактировать с парсерами максимально комфортно:</p>
42 <ol><li>Наличие библиотеки libcurl. Она отвечает за подключение<a>скрипта</a>ко всем видам серверов (даже при работе с http протоколами).</li>
42 <ol><li>Наличие библиотеки libcurl. Она отвечает за подключение<a>скрипта</a>ко всем видам серверов (даже при работе с http протоколами).</li>
43 <li>Поддержка регулярных выражений. За их счет парсер осуществляет обработку информации.</li>
43 <li>Поддержка регулярных выражений. За их счет парсер осуществляет обработку информации.</li>
44 <li>Наличие библиотеки DOM, используемой для работы<a>с XML</a>-расширяемым языком разметки текста. Он пригодится при выводе результатов обработки информации.</li>
44 <li>Наличие библиотеки DOM, используемой для работы<a>с XML</a>-расширяемым языком разметки текста. Он пригодится при выводе результатов обработки информации.</li>
45 <li>Высокая совместимость с HTML.</li>
45 <li>Высокая совместимость с HTML.</li>
46 </ol><p>При запуске URL сайта и внедрения парсера PHP станет настоящим спасением. Это не слишком сложный, но очень мощный язык.</p>
46 </ol><p>При запуске URL сайта и внедрения парсера PHP станет настоящим спасением. Это не слишком сложный, но очень мощный язык.</p>
47 <h2>Parse URL - особенности</h2>
47 <h2>Parse URL - особенности</h2>
48 <p>Parse_url - функция, которая разбирает URL, а затем осуществляет возврат его компонентов. Применяется в PHP 4, 5, 7.</p>
48 <p>Parse_url - функция, которая разбирает URL, а затем осуществляет возврат его компонентов. Применяется в PHP 4, 5, 7.</p>
49 <p>Стоит запомнить ее следующие особенности:</p>
49 <p>Стоит запомнить ее следующие особенности:</p>
50 <ul><li>mixed parse_url (string $url [<a>int</a>$component = -1]) - функция, которая разбирает URL и возвращает ассоциативный массив со всеми компонентами соответствующего адрес в Сети;</li>
50 <ul><li>mixed parse_url (string $url [<a>int</a>$component = -1]) - функция, которая разбирает URL и возвращает ассоциативный массив со всеми компонентами соответствующего адрес в Сети;</li>
51 <li>не позволяет проверять корректность URL;</li>
51 <li>не позволяет проверять корректность URL;</li>
52 <li>разбивает адрес на части.</li>
52 <li>разбивает адрес на части.</li>
53 </ul><p>Parse_url старается разобрать частичные URL предельно корректно.</p>
53 </ul><p>Parse_url старается разобрать частичные URL предельно корректно.</p>
54 <h3>О параметрах</h3>
54 <h3>О параметрах</h3>
55 <p>У рассматриваемой функции есть несколько параметров. Первый - URL.. Это - адрес для разбора. Символы, которые воспринимаются парсером как недопустимые, будут заменяться на подчеркивание.</p>
55 <p>У рассматриваемой функции есть несколько параметров. Первый - URL.. Это - адрес для разбора. Символы, которые воспринимаются парсером как недопустимые, будут заменяться на подчеркивание.</p>
56 <p>Component - возможность считывания конкретного элемента адреса в виде строчки. Исключение - php_url_port. Этот вариант предусматривает возврат значения int.</p>
56 <p>Component - возможность считывания конкретного элемента адреса в виде строчки. Исключение - php_url_port. Этот вариант предусматривает возврат значения int.</p>
57 <h3><strong>Возвращаемые значения</strong></h3>
57 <h3><strong>Возвращаемые значения</strong></h3>
58 <p>Если URLs значительно некорректные, парсер может вернуть значение False. Когда component опускается, функция будет возвращать ассоциативный массив. В нем расположен хотя бы один элемент.</p>
58 <p>Если URLs значительно некорректные, парсер может вернуть значение False. Когда component опускается, функция будет возвращать ассоциативный массив. В нем расположен хотя бы один элемент.</p>
59 <p>В массиве ассоциативного характера (array) могут встречаться такие ключи:</p>
59 <p>В массиве ассоциативного характера (array) могут встречаться такие ключи:</p>
60 <ul><li><a>scheme</a>- пример: http;</li>
60 <ul><li><a>scheme</a>- пример: http;</li>
61 <li>port;</li>
61 <li>port;</li>
62 <li>host;</li>
62 <li>host;</li>
63 <li>pass;</li>
63 <li>pass;</li>
64 <li>user;</li>
64 <li>user;</li>
65 <li>query - после знака вопроса;</li>
65 <li>query - после знака вопроса;</li>
66 <li>fragment - после знака "решетка".</li>
66 <li>fragment - после знака "решетка".</li>
67 </ul><p>При определении component функция parse_url() вернет строчку или число вместо<a>массива</a>. Когда запрошенный элемент отсутствует в URL, "операция" возвращает значение null (пусто, ничего).</p>
67 </ul><p>При определении component функция parse_url() вернет строчку или число вместо<a>массива</a>. Когда запрошенный элемент отсутствует в URL, "операция" возвращает значение null (пусто, ничего).</p>
68 <h2>Наглядные примеры - CURL и phpQuery</h2>
68 <h2>Наглядные примеры - CURL и phpQuery</h2>
69 <p>Если нужно осуществить парсинг сайта, можно использовать для этого библиотеку CURL. Второй вариант - phpQuery, который представлен аналогом jQuery для PHP. Каждый подход имеет собственные преимущества.</p>
69 <p>Если нужно осуществить парсинг сайта, можно использовать для этого библиотеку CURL. Второй вариант - phpQuery, который представлен аналогом jQuery для PHP. Каждый подход имеет собственные преимущества.</p>
70 <h3>Предварительная подготовка</h3>
70 <h3>Предварительная подготовка</h3>
71 <p>Парсинг на сайте (ru) может быть проведен при помощи функции file_get_content. Помогает получить содержимое необходимой разработчику странички:</p>
71 <p>Парсинг на сайте (ru) может быть проведен при помощи функции file_get_content. Помогает получить содержимое необходимой разработчику странички:</p>
72 <p>В качестве параметра используется желаемый адрес. Аналогичная функция помогает добавлять заголовки через потоковый контекст:</p>
72 <p>В качестве параметра используется желаемый адрес. Аналогичная функция помогает добавлять заголовки через потоковый контекст:</p>
73 <p>Для запуска соответствующего метода опция allow_url_fopen в php.ini должна быть активирована.</p>
73 <p>Для запуска соответствующего метода опция allow_url_fopen в php.ini должна быть активирована.</p>
74 <p>Второй вариант получения содержимого - через сокеты (pfsockopen). Но лучше использовать библиотеку php CURL.</p>
74 <p>Второй вариант получения содержимого - через сокеты (pfsockopen). Но лучше использовать библиотеку php CURL.</p>
75 <h3>CURL и парсинг</h3>
75 <h3>CURL и парсинг</h3>
76 <p>Теперь настало время запуска парсинга. Первый подход - с помощью CURL. Действовать предстоит следующим образом:</p>
76 <p>Теперь настало время запуска парсинга. Первый подход - с помощью CURL. Действовать предстоит следующим образом:</p>
77 <ul><li>Сначала требуется получить http страницы без параметров.</li>
77 <ul><li>Сначала требуется получить http страницы без параметров.</li>
78 </ul><ul><li>Получение http странички с get-параметрами.</li>
78 </ul><ul><li>Получение http странички с get-параметрами.</li>
79 </ul><ul><li>Получение веб-ресурса по протоколам https.</li>
79 </ul><ul><li>Получение веб-ресурса по протоколам https.</li>
80 </ul><ul><li>Извлечение http, которая будет загружаться непосредственно через редиректы (следование 302).</li>
80 </ul><ul><li>Извлечение http, которая будет загружаться непосредственно через редиректы (следование 302).</li>
81 </ul><ul><li>Нужно сформировать POST-запрос и отправить его. Делаются подобные операции через CURL.</li>
81 </ul><ul><li>Нужно сформировать POST-запрос и отправить его. Делаются подобные операции через CURL.</li>
82 </ul><ul><li>Требуется активировать куки в запросе.</li>
82 </ul><ul><li>Требуется активировать куки в запросе.</li>
83 </ul><ul><li>В запросе GZIP активировать функцию сжатия. Требуется, когда<a>тело ответа</a>- это непонятный набор текста.</li>
83 </ul><ul><li>В запросе GZIP активировать функцию сжатия. Требуется, когда<a>тело ответа</a>- это непонятный набор текста.</li>
84 </ul><ul><li>Вывод заголовков ответов от сервера. Помогает при отладке. Пример - когда сервер не присылает правильное тело ответа или вовсе не дает его.</li>
84 </ul><ul><li>Вывод заголовков ответов от сервера. Помогает при отладке. Пример - когда сервер не присылает правильное тело ответа или вовсе не дает его.</li>
85 </ul><p>При парсинге огромную роль играют следующие параметры:</p>
85 </ul><p>При парсинге огромную роль играют следующие параметры:</p>
86 <p>Первый будет всегда в "приложении". Остальные добавляются по мере необходимости. Параметр curlopt_header отвечает за поиск проблем. С ним наладить функционирование парсера php curl не составит никакого труда.</p>
86 <p>Первый будет всегда в "приложении". Остальные добавляются по мере необходимости. Параметр curlopt_header отвечает за поиск проблем. С ним наладить функционирование парсера php curl не составит никакого труда.</p>
87 <h3>PhpQuery - принцип работы</h3>
87 <h3>PhpQuery - принцип работы</h3>
88 <p>Второй вариант применения парсинга - через phpQuery. Помогает тогда, когда страничка получена через CURL или иным методом.</p>
88 <p>Второй вариант применения парсинга - через phpQuery. Помогает тогда, когда страничка получена через CURL или иным методом.</p>
89 <p>Код выше наглядно показывает, как создать парсер на php через phpQuery. Он выступает полноценным аналогом iQuery. Все функции соответствующей "возможности" прописаны в сопутствующей документации. По<a>этой</a>ссылке можно обнаружить селекторы и методы. А<a>здесь</a>- еще несколько кодов парсеров.</p>
89 <p>Код выше наглядно показывает, как создать парсер на php через phpQuery. Он выступает полноценным аналогом iQuery. Все функции соответствующей "возможности" прописаны в сопутствующей документации. По<a>этой</a>ссылке можно обнаружить селекторы и методы. А<a>здесь</a>- еще несколько кодов парсеров.</p>
90 <p>Быстрее освоиться в parsers, а также таких понятиях как print_r, echo, curl и других помогут специализированные дистанционные курсы. В срок от пары месяцев до года удастся освоить программирование "с нуля".</p>
90 <p>Быстрее освоиться в parsers, а также таких понятиях как print_r, echo, curl и других помогут специализированные дистанционные курсы. В срок от пары месяцев до года удастся освоить программирование "с нуля".</p>
91 <a></a>
91 <a></a>