[{"data":1,"prerenderedAt":18},["ShallowReactive",2],{"article":3},{"id":4,"category":5,"slug":6,"title":7,"image":8,"page_image":9,"published_at":10,"updated_at":11,"meta_title":12,"meta_description":13,"meta_keywords":14,"content":15,"tags":16,"faqs":17},129,"blog","ua-php-i-avtomatizirovannyi-sbor-dannyx","PHP та автоматизоване збору даних","https://blog.dexodata.com/storage/uploads/previews/15-3-s-trusted-proxy-website-php-and-data-collection-cover-1032x491-058e15f3-9c89-4100-a80c-ca121dc343ea.webp","https://blog.dexodata.com/storage/uploads/covers/15-3-b-trusted-proxy-website-php-and-data-collection-cover-1032x491-accb4767-8ff9-4506-aa0e-4cf5aac6a61e.webp","2024/08/13","2024/07/31","Як збирати дані в Мережі з PHP та орендою проксі","Потенціал PHP для збору даних в інтернеті. Вивчаємо разом з Dexodata, сайтом проксі сервером з пулом найкращих резидентних та мобільних проксі для роботи.","","\u003C!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n\u003C?xml encoding=\"utf-8\"?>\u003Chtml>\u003Cbody>\u003Cp>\u003Cem>\u003Cstrong>&#1047;&#1084;&#1110;&#1089;&#1090;:\u003C/strong>\u003C/em>\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#anchor1\">&#1054;&#1089;&#1085;&#1086;&#1074;&#1080; &#1090;&#1072; &#1074;&#1080;&#1084;&#1086;&#1075;&#1080; &#1076;&#1086; &#1076;&#1072;&#1090;&#1072;-&#1093;&#1072;&#1088;&#1074;&#1077;&#1089;&#1090;&#1080;&#1085;&#1075;&#1091; &#1079; PHP\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor2\">&#1040;&#1074;&#1090;&#1086;&#1084;&#1072;&#1090;&#1080;&#1079;&#1086;&#1074;&#1072;&#1085;&#1080;&#1081; &#1079;&#1073;&#1110;&#1088; &#1076;&#1072;&#1085;&#1080;&#1093; &#1095;&#1077;&#1088;&#1077;&#1079; PHP: &#1055;&#1088;&#1086;&#1073;&#1085;&#1080;&#1081; &#1089;&#1094;&#1077;&#1085;&#1072;&#1088;&#1110;&#1081;\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor3\">&#1045;&#1074;&#1086;&#1083;&#1102;&#1094;&#1110;&#1103;. &#1041;&#1110;&#1073;&#1083;&#1110;&#1086;&#1090;&#1077;&#1082;&#1080; &#1090;&#1072; &#1110;&#1085;&#1089;&#1090;&#1088;&#1091;&#1084;&#1077;&#1085;&#1090;&#1080; PHP\u003C/a>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#anchor4\">Goutte\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor5\">Simple HTML DOM\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor6\">PHP Scraper\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor7\">cURL &#1076;&#1083;&#1103; &#1079;&#1073;&#1086;&#1088;&#1091; &#1076;&#1072;&#1085;&#1080;&#1093; &#1079; PHP\u003C/a>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor8\">&#1057;&#1090;&#1074;&#1086;&#1088;&#1102;&#1108;&#1084;&#1086; &#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1077;&#1088; &#1085;&#1072; PHP: &#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor9\">&#1055;&#1110;&#1076;&#1089;&#1091;&#1084;&#1082;&#1086;&#1074;&#1110; &#1079;&#1072;&#1091;&#1074;&#1072;&#1078;&#1077;&#1085;&#1085;&#1103; \u003C/a>\u003C/li>\n\u003C/ul>\n\u003Cp>&#1057;&#1090;&#1072;&#1090;&#1090;&#1103; &#1085;&#1080;&#1078;&#1095;&#1077; &#1087;&#1110;&#1076;&#1074;&#1086;&#1076;&#1080;&#1090;&#1100; &#1087;&#1088;&#1086;&#1084;&#1110;&#1078;&#1085;&#1080;&#1081; &#1087;&#1110;&#1076;&#1089;&#1091;&#1084;&#1086;&#1082; &#1089;&#1077;&#1088;&#1110;&#1111; &#1084;&#1072;&#1090;&#1077;&#1088;&#1110;&#1072;&#1083;&#1110;&#1074; &#1087;&#1086; &#1089;&#1074;&#1110;&#1090;&#1091; &#1076;&#1072;&#1090;&#1072;-&#1093;&#1072;&#1088;&#1074;&#1077;&#1089;&#1090;&#1080;&#1085;&#1075;&#1091; &#1079;&#1072; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1075;&#1086;&#1102; &#1084;&#1086;&#1074; &#1087;&#1088;&#1086;&#1075;&#1088;&#1072;&#1084;&#1091;&#1074;&#1072;&#1085;&#1085;&#1103;. &#1057;&#1072;&#1081;&#1090; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088; Dexodata &#1079; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1086;&#1102; &#1075;&#1085;&#1091;&#1095;&#1082;&#1080;&#1093; &#1085;&#1072;&#1083;&#1072;&#1096;&#1090;&#1091;&#1074;&#1072;&#1085;&#1100; &#1074;&#1078;&#1077; &#1074;&#1080;&#1074;&#1095;&#1080;&#1074; &#1087;&#1086;&#1090;&#1077;&#1085;&#1094;&#1110;&#1072;&#1083; Python, JavaScript &#1090;&#1072; &#1084;&#1086;&#1074;&#1080; Java. &#1058;&#1077;&#1087;&#1077;&#1088; &#1095;&#1072;&#1089; &#1087;&#1086;&#1087;&#1088;&#1072;&#1094;&#1102;&#1074;&#1072;&#1090;&#1080; &#1079; PHP (&#1074; &#1084;&#1072;&#1081;&#1073;&#1091;&#1090;&#1085;&#1100;&#1086;&#1084;&#1091; &#1084;&#1080; &#1087;&#1083;&#1072;&#1085;&#1091;&#1108;&#1084;&#1086; &#1090;&#1086;&#1088;&#1082;&#1085;&#1091;&#1090;&#1080;&#1089;&#1103; &#1081; &#1110;&#1085;&#1096;&#1080;&#1093; &#1090;&#1077;&#1084;).\u003C/p>\n\u003Cp>&#1030;&#1089;&#1085;&#1091;&#1108; &#1076;&#1091;&#1084;&#1082;&#1072;, &#1097;&#1086; &#1094;&#1103; &#1086;&#1087;&#1094;&#1110;&#1103; &#1079;&#1072;&#1089;&#1090;&#1072;&#1088;&#1110;&#1083;&#1072;. &#1063;&#1086;&#1084;&#1091; &#1088;&#1086;&#1079;&#1082;&#1088;&#1080;&#1074;&#1072;&#1090;&#1080; &#1111;&#1111; &#1076;&#1083;&#1103; &#1095;&#1080;&#1090;&#1072;&#1095;&#1110;&#1074;, &#1103;&#1082;&#1080;&#1084; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1072; &#1086;&#1088;&#1077;&#1085;&#1076;&#1072; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110; &#1076;&#1083;&#1103; &#1088;&#1086;&#1073;&#1086;&#1090;&#1080; &#1079; &#1074;&#1083;&#1072;&#1089;&#1085;&#1086;&#1088;&#1091;&#1095; &#1085;&#1072;&#1087;&#1080;&#1089;&#1072;&#1085;&#1086;&#1102; &#1087;&#1088;&#1086;&#1075;&#1088;&#1072;&#1084;&#1086;&#1102;? &#1055;&#1088;&#1080;&#1095;&#1080;&#1085;&#1080; &#1108;. \u003Ca href=\"https://uk.wikipedia.org/wiki/PHP\" target=\"_blank\" rel=\"noopener\">PHP &#1108; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1085;&#1086;&#1102; &#1089;&#1082;&#1088;&#1080;&#1087;&#1090;&#1086;&#1074;&#1086;&#1102; &#1084;&#1086;&#1074;&#1086;&#1102;\u003C/a>, &#1097;&#1086; &#1079;'&#1103;&#1074;&#1080;&#1083;&#1072;&#1089;&#1103; &#1074; 1995 &#1088;&#1086;&#1094;&#1110;. &#1042; &#1094;&#1100;&#1086;&#1084;&#1091; &#1089;&#1090;&#1072;&#1090;&#1091;&#1089;&#1110; &#1074;&#1086;&#1085;&#1072; &#1076;&#1086;&#1089;&#1110; &#1086;&#1073;&#1089;&#1083;&#1091;&#1075;&#1086;&#1074;&#1091;&#1108; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080; &#1074;&#1077;&#1073;-&#1088;&#1086;&#1079;&#1088;&#1086;&#1073;&#1085;&#1080;&#1082;&#1110;&#1074; &#1090;&#1072; &#1088;&#1086;&#1079;&#1074;&#1080;&#1074;&#1072;&#1108;&#1090;&#1100;&#1089;&#1103; (\u003Ca href=\"https://php.watch/versions/8.4\" target=\"_blank\" rel=\"noopener\">&#1086;&#1089;&#1090;&#1072;&#1085;&#1085;&#1103; &#1074;&#1077;&#1088;&#1089;&#1110;&#1103; PHP &mdash; 8.4\u003C/a>):&nbsp;&nbsp;\u003C/p>\n\u003Cul>\n\u003Cli>&#1042; &#1110;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090;-&#1089;&#1074;&#1110;&#1090;&#1110; &#1085;&#1077; &#1090;&#1072;&#1082; &#1073;&#1072;&#1075;&#1072;&#1090;&#1086; &#1083;&#1102;&#1076;&#1077;&#1081;, &#1103;&#1082;&#1110; &#1085;&#1077; &#1079;&#1085;&#1072;&#1102;&#1090;&#1100;, &#1097;&#1086; &#1090;&#1072;&#1082;&#1077; WordPress. &#1062;&#1103; CMS &#1087;&#1088;&#1072;&#1094;&#1102;&#1108; &#1085;&#1072; PHP &#1090;&#1072; &#1087;&#1110;&#1076;&#1090;&#1088;&#1080;&#1084;&#1091;&#1108; &#1073;&#1083;&#1080;&#1079;&#1100;&#1082;&#1086; 40% &#1089;&#1072;&#1081;&#1090;&#1110;&#1074; &#1091; &#1089;&#1074;&#1110;&#1090;&#1110;. &#1053;&#1077; &#1074;&#1089;&#1110; &#1074;&#1086;&#1085;&#1080; &#1087;&#1086;&#1087;&#1091;&#1083;&#1103;&#1088;&#1085;&#1110;. 40% &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1086;&#1082; &#1085;&#1077; &#1076;&#1086;&#1088;&#1110;&#1074;&#1085;&#1102;&#1102;&#1090;&#1100; 40% &#1090;&#1088;&#1072;&#1092;&#1110;&#1082;&#1091; &#1072;&#1073;&#1086; 40% &#1076;&#1072;&#1085;&#1080;&#1093;. &#1040;&#1083;&#1077; &#1095;&#1072;&#1089;&#1090;&#1082;&#1072; &#1089;&#1091;&#1090;&#1090;&#1108;&#1074;&#1072;;&nbsp;\u003C/li>\n\u003Cli>&#1054;&#1082;&#1088;&#1110;&#1084; &#1091;&#1087;&#1088;&#1072;&#1074;&#1083;&#1110;&#1085;&#1085;&#1103; &#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090;&#1086;&#1084;, &#1074; 80% &#1074;&#1080;&#1087;&#1072;&#1076;&#1082;&#1110;&#1074; PHP &#1079;&#1072;&#1073;&#1077;&#1079;&#1087;&#1077;&#1095;&#1091;&#1108; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1085;&#1110; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080; &#1089;&#1072;&#1081;&#1090;&#1110;&#1074; (&#1082;&#1086;&#1083;&#1080; &#1094;&#1077;&#1081; &#1092;&#1072;&#1082;&#1090; &#1084;&#1086;&#1078;&#1085;&#1072; &#1074;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1080;);\u003C/li>\n\u003Cli>&#1053;&#1072; PHP &#1076;&#1086;&#1089;&#1110; &#1079;'&#1103;&#1074;&#1083;&#1103;&#1102;&#1090;&#1100;&#1089;&#1103; &#1089;&#1091;&#1095;&#1072;&#1089;&#1085;&#1110; &#1087;&#1088;&#1086;&#1076;&#1091;&#1082;&#1090;&#1080;. &#1050;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095;&#1110;, &#1097;&#1086; &#1079;&#1074;&#1077;&#1088;&#1090;&#1072;&#1102;&#1090;&#1100;&#1089;&#1103; &#1076;&#1086; &#1085;&#1072;&#1096;&#1080;&#1093; &#1085;&#1072;&#1081;&#1082;&#1088;&#1072;&#1097;&#1080;&#1093; &#1088;&#1077;&#1079;&#1080;&#1076;&#1077;&#1085;&#1090;&#1085;&#1080;&#1093; &#1090;&#1072; &#1084;&#1086;&#1073;&#1110;&#1083;&#1100;&#1085;&#1080;&#1093; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110; &#1076;&#1083;&#1103; &#1088;&#1086;&#1073;&#1086;&#1090;&#1080; &#1074; &#1089;&#1086;&#1094;&#1110;&#1072;&#1083;&#1100;&#1085;&#1080;&#1093; &#1084;&#1077;&#1088;&#1077;&#1078;&#1072;&#1093;, &#1084;&#1086;&#1078;&#1091;&#1090;&#1100; &#1085;&#1077; &#1079;&#1085;&#1072;&#1090;&#1080;, &#1072;&#1083;&#1077; \u003Ca href=\"https://slack.engineering/taking-php-seriously/\" target=\"_blank\" rel=\"noopener\">Slack &#1087;&#1086;&#1073;&#1091;&#1076;&#1086;&#1074;&#1072;&#1085;&#1080;&#1081; &#1085;&#1072; PHP\u003C/a>. &#1058;&#1072;&#1082;, &#1094;&#1077; &#1085;&#1077; &#1089;&#1086;&#1094;&#1084;&#1077;&#1088;&#1077;&#1078;&#1072;, &#1072;&#1083;&#1077; &#1089;&#1093;&#1086;&#1078;&#1110; &#1077;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;&#1080; &#1090;&#1072;&#1084; &#1108;.\u003C/li>\n\u003C/ul>\n\u003Cp>&#1071;&#1082; &#1084;&#1086;&#1074;&#1072;, &#1089;&#1087;&#1086;&#1095;&#1072;&#1090;&#1082;&#1091; &laquo;&#1087;&#1088;&#1077;&#1076;&#1088;&#1072;&#1089;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1072;&raquo; &#1076;&#1083;&#1103; &#1110;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090;&#1091;, PHP &#1108; &#1088;&#1086;&#1073;&#1086;&#1095;&#1080;&#1084; &#1074;&#1072;&#1088;&#1110;&#1072;&#1085;&#1090;&#1086;&#1084; &#1076;&#1083;&#1103; &#1089;&#1094;&#1077;&#1085;&#1072;&#1088;&#1110;&#1111;&#1074; &#1085;&#1080;&#1079;&#1100;&#1082;&#1086;&#1111; &#1090;&#1072; &#1089;&#1077;&#1088;&#1077;&#1076;&#1085;&#1100;&#1086;&#1111; &#1089;&#1082;&#1083;&#1072;&#1076;&#1085;&#1086;&#1089;&#1090;&#1110;. &#1047; &#1081;&#1086;&#1075;&#1086; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1075;&#1086;&#1102; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1086;:\u003C/p>\n\u003Col>\n\u003Cli>&#1030;&#1085;&#1110;&#1094;&#1110;&#1102;&#1074;&#1072;&#1090;&#1080; &#1079;&#1072;&#1087;&#1080;&#1090;&#1080;;\u003C/li>\n\u003Cli>&#1047;&#1072;&#1073;&#1080;&#1088;&#1072;&#1090;&#1080; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102;;\u003C/li>\n\u003Cli>&#1047;&#1073;&#1077;&#1088;&#1110;&#1075;&#1072;&#1090;&#1080; &#1076;&#1072;&#1085;&#1110; &#1074; &#1087;&#1110;&#1076;&#1093;&#1086;&#1076;&#1103;&#1097;&#1086;&#1084;&#1091; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1110;, &#1103;&#1082; &#1090;&#1086; CSV, JSON &#1072;&#1073;&#1086; XML.\u003C/li>\n\u003C/ol>\n\u003Cp>&#1055;&#1110;&#1076;&#1089;&#1091;&#1084;&#1086;&#1082;: PHP &#1108; &#1088;&#1077;&#1089;&#1091;&#1088;&#1089;&#1086;&#1084; &#1076;&#1083;&#1103; &#1087;&#1072;&#1088;&#1089;&#1080;&#1085;&#1075;&#1091;, &#1086;&#1089;&#1082;&#1110;&#1083;&#1100;&#1082;&#1080; &#1074;&#1110;&#1085; &#1079;&#1076;&#1072;&#1090;&#1085;&#1080;&#1081; &#1074;&#1079;&#1072;&#1108;&#1084;&#1086;&#1076;&#1110;&#1103;&#1090;&#1080; &#1079; &#1089;&#1072;&#1081;&#1090;&#1072;&#1084;&#1080;, &#1088;&#1086;&#1079;&#1091;&#1084;&#1110;&#1090;&#1080; &#1090;&#1072; &#1086;&#1073;&#1088;&#1086;&#1073;&#1083;&#1103;&#1090;&#1080; HTML, &#1072; &#1090;&#1072;&#1082;&#1086;&#1078; &#1079;&#1073;&#1080;&#1088;&#1072;&#1090;&#1080; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102; &#1087;&#1088;&#1086; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1091; &#1079;&#1072; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1075;&#1086;&#1102; &#1088;&#1103;&#1076;&#1091; &#1092;&#1091;&#1085;&#1082;&#1094;&#1110;&#1081; &#1090;&#1072; &#1073;&#1110;&#1073;&#1083;&#1110;&#1086;&#1090;&#1077;&#1082;. &#1042;&#1110;&#1085; &#1085;&#1077; &#1090;&#1072;&#1082;&#1080;&#1081; &#1087;&#1088;&#1086;&#1089;&#1091;&#1085;&#1091;&#1090;&#1080;&#1081; &#1090;&#1072; &#1075;&#1085;&#1091;&#1095;&#1082;&#1080;&#1081;, &#1110; &#1081;&#1086;&#1075;&#1086; &#1085;&#1077; &#1089;&#1083;&#1110;&#1076; &#1074;&#1080;&#1073;&#1080;&#1088;&#1072;&#1090;&#1080; &#1076;&#1083;&#1103; &#1076;&#1080;&#1085;&#1072;&#1084;&#1110;&#1095;&#1085;&#1086;&#1075;&#1086; &#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090;&#1091;. &#1030; &#1074;&#1089;&#1077; &#1078; &#1074;&#1110;&#1085; &#1108; &#1078;&#1080;&#1090;&#1090;&#1108;&#1079;&#1076;&#1072;&#1090;&#1085;&#1086;&#1102; &#1072;&#1083;&#1100;&#1090;&#1077;&#1088;&#1085;&#1072;&#1090;&#1080;&#1074;&#1086;&#1102;. &#1052;&#1080; &#1075;&#1086;&#1074;&#1086;&#1088;&#1080;&#1084;&#1086; &#1087;&#1088;&#1086; &#1094;&#1077; &#1103;&#1082; &#1077;&#1082;&#1089;&#1087;&#1077;&#1088;&#1090;&#1080; &#1074; \u003Ca href=\"https://dexodata.com/ru/data-gathering\" target=\"_blank\" rel=\"noopener\">&#1089;&#1092;&#1077;&#1088;&#1110; &#1074;&#1077;&#1073;-&#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1110;&#1085;&#1075;&#1091;\u003C/a>.\u003C/p>\n\u003Ch2>\u003Ca name=\"anchor1\">\u003C/a>&#1054;&#1089;&#1085;&#1086;&#1074;&#1080; &#1090;&#1072; &#1074;&#1080;&#1084;&#1086;&#1075;&#1080; &#1076;&#1086; &#1076;&#1072;&#1090;&#1072;-&#1093;&#1072;&#1088;&#1074;&#1077;&#1089;&#1090;&#1080;&#1085;&#1075;&#1091; &#1079; PHP\u003C/h2>\n\u003Cp>&#1055;&#1077;&#1088;&#1096; &#1085;&#1110;&#1078; &#1088;&#1091;&#1093;&#1072;&#1090;&#1080;&#1089;&#1103; &#1076;&#1072;&#1083;&#1110;, &#1074;&#1072;&#1088;&#1090;&#1086; &#1074;&#1087;&#1077;&#1074;&#1085;&#1080;&#1090;&#1080;&#1089;&#1103; &#1074; &#1085;&#1072;&#1089;&#1090;&#1091;&#1087;&#1085;&#1080;&#1093; &#1084;&#1086;&#1084;&#1077;&#1085;&#1090;&#1072;&#1093;:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>HTTP-&#1079;&#1072;&#1087;&#1080;&#1090;&#1080;\u003C/strong>\u003C/span>. &#1058;&#1091;&#1090; &#1084;&#1080; &#1084;&#1072;&#1108;&#1084;&#1086; &#1085;&#1072; &#1091;&#1074;&#1072;&#1079;&#1110; &#1087;&#1088;&#1086;&#1090;&#1086;&#1082;&#1086;&#1083;, &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1086;&#1074;&#1091;&#1074;&#1072;&#1085;&#1080;&#1081; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;&#1084;&#1080; &#1076;&#1083;&#1103; &#1074;&#1110;&#1076;&#1087;&#1088;&#1072;&#1074;&#1082;&#1080; &#1090;&#1072; &#1086;&#1090;&#1088;&#1080;&#1084;&#1072;&#1085;&#1085;&#1103; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1111;. &#1065;&#1086;&#1073; &#1087;&#1088;&#1080;&#1081;&#1085;&#1103;&#1090;&#1080; &#1076;&#1072;&#1085;&#1110; &#1087;&#1088;&#1086; &#1089;&#1072;&#1081;&#1090;, &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095; &#1087;&#1086;&#1074;&#1080;&#1085;&#1077;&#1085; &#1085;&#1072;&#1076;&#1110;&#1089;&#1083;&#1072;&#1090;&#1080; HTTP-&#1079;&#1072;&#1087;&#1080;&#1090; &#1085;&#1072; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;, &#1097;&#1086; &#1074;&#1110;&#1076;&#1087;&#1086;&#1074;&#1110;&#1076;&#1072;&#1108; &#1079;&#1072; &#1088;&#1086;&#1079;&#1084;&#1110;&#1097;&#1077;&#1085;&#1085;&#1103; &#1094;&#1110;&#1108;&#1111; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1080;. &#1042; PHP &#1108; &#1090;&#1072;&#1082;&#1110; &#1074;&#1073;&#1091;&#1076;&#1086;&#1074;&#1072;&#1085;&#1110; &#1092;&#1091;&#1085;&#1082;&#1094;&#1110;&#1111;, &#1103;&#1082; \u003Ccode>cURL\u003C/code>, \u003Ccode>file_get_contents()\u003C/code>, &#1072; &#1090;&#1072;&#1082;&#1086;&#1078; \u003Ccode>fopen()\u003C/code>, &#1097;&#1086; &#1076;&#1086;&#1079;&#1074;&#1086;&#1083;&#1103;&#1102;&#1090;&#1100; &#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1083;&#1103;&#1090;&#1080; HTTP-&#1079;&#1072;&#1087;&#1080;&#1090;&#1080; &#1090;&#1072; &laquo;&#1079;&#1085;&#1110;&#1084;&#1072;&#1090;&#1080;&raquo; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102; &#1079;&#1110; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1086;&#1082;;\u003C/li>\n\u003Cli>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>&#1055;&#1072;&#1088;&#1089;&#1080;&#1085;&#1075; HTML\u003C/strong>\u003C/span>. &#1071;&#1082; &#1084;&#1086;&#1074;&#1072;, &#1087;&#1088;&#1080;&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1072; &#1076;&#1083;&#1103; &laquo;&#1082;&#1086;&#1085;&#1089;&#1090;&#1088;&#1091;&#1102;&#1074;&#1072;&#1085;&#1085;&#1103;&raquo; &#1074;&#1077;&#1073;-&#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1086;&#1082;, PHP &#1087;&#1088;&#1086;&#1087;&#1086;&#1085;&#1091;&#1108; &#1090;&#1072;&#1082;&#1110; &#1074;&#1073;&#1091;&#1076;&#1086;&#1074;&#1072;&#1085;&#1110; &#1092;&#1091;&#1085;&#1082;&#1094;&#1110;&#1111;, &#1103;&#1082; \u003Ccode>DOMDocument\u003C/code> &#1090;&#1072; \u003Ccode>SimpleXMLElement\u003C/code>, &#1097;&#1086; &#1076;&#1086;&#1079;&#1074;&#1086;&#1083;&#1103;&#1102;&#1090;&#1100; &#1072;&#1085;&#1072;&#1083;&#1110;&#1079;&#1091;&#1074;&#1072;&#1090;&#1080; HTML &#1076;&#1083;&#1103; &#1086;&#1090;&#1088;&#1080;&#1084;&#1072;&#1085;&#1085;&#1103; &#1076;&#1072;&#1085;&#1080;&#1093;;\u003C/li>\n\u003Cli>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>&#1056;&#1077;&#1075;&#1091;&#1083;&#1103;&#1088;&#1085;&#1110; &#1074;&#1080;&#1088;&#1072;&#1079;&#1080;\u003C/strong>\u003C/span> &#1089;&#1083;&#1091;&#1075;&#1091;&#1102;&#1090;&#1100; &#1110;&#1085;&#1089;&#1090;&#1088;&#1091;&#1084;&#1077;&#1085;&#1090;&#1086;&#1084; &#1076;&#1083;&#1103; &#1089;&#1087;&#1110;&#1074;&#1089;&#1090;&#1072;&#1074;&#1083;&#1077;&#1085;&#1085;&#1103; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1110;&#1074; &#1090;&#1072; &#1079;&#1076;&#1110;&#1081;&#1089;&#1085;&#1077;&#1085;&#1085;&#1103; &#1084;&#1072;&#1085;&#1110;&#1087;&#1091;&#1083;&#1103;&#1094;&#1110;&#1081; &#1079; &#1090;&#1077;&#1082;&#1089;&#1090;&#1086;&#1074;&#1080;&#1084; &#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090;&#1086;&#1084;. &#1047;&#1085;&#1086;&#1074;&#1091; &#1078;, &#1110; &#1090;&#1091;&#1090; PHP &#1087;&#1088;&#1086;&#1087;&#1086;&#1085;&#1091;&#1108; &#1074;&#1073;&#1091;&#1076;&#1086;&#1074;&#1072;&#1085;&#1110; &#1092;&#1091;&#1085;&#1082;&#1094;&#1110;&#1111;, &#1085;&#1072;&#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;, \u003Ccode>preg_match()\u003C/code> &#1088;&#1072;&#1079;&#1086;&#1084; &#1079; \u003Ccode>preg_replace()\u003C/code>, &#1097;&#1086; &#1076;&#1086;&#1079;&#1074;&#1086;&#1083;&#1103;&#1102;&#1090;&#1100; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1086;&#1074;&#1091;&#1074;&#1072;&#1090;&#1080; &#1088;&#1077;&#1075;&#1091;&#1083;&#1103;&#1088;&#1085;&#1110; &#1074;&#1080;&#1088;&#1072;&#1079;&#1080; &#1076;&#1083;&#1103; &#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1110;&#1085;&#1075;&#1091;.\u003C/li>\n\u003C/ol>\n\u003Cp>&#1062;&#1080;&#1093; &#1087;&#1086;&#1085;&#1103;&#1090;&#1100; &#1073;&#1091;&#1076;&#1077; &#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1085;&#1100;&#1086;, &#1103;&#1082;&#1097;&#1086; &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095;&#1110; &#1084;&#1072;&#1102;&#1090;&#1100; &#1085;&#1072;&#1084;&#1110;&#1088; &#1089;&#1090;&#1074;&#1086;&#1088;&#1080;&#1090;&#1080; &#1074; PHP &#1087;&#1088;&#1086;&#1089;&#1090;&#1091; &#1087;&#1088;&#1086;&#1075;&#1088;&#1072;&#1084;&#1091; &#1076;&#1083;&#1103; &#1087;&#1077;&#1088;&#1077;&#1076;&#1072;&#1095;&#1110; HTTP-&#1079;&#1072;&#1087;&#1080;&#1090;&#1110;&#1074; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;, &laquo;&#1091;&#1093;&#1086;&#1087;&#1083;&#1077;&#1085;&#1085;&#1103;&raquo; HTML &#1090;&#1072; &#1072;&#1085;&#1072;&#1083;&#1110;&#1079;&#1091; &#1082;&#1086;&#1076;&#1091;.\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor2\">\u003C/a>&#1040;&#1074;&#1090;&#1086;&#1084;&#1072;&#1090;&#1080;&#1079;&#1086;&#1074;&#1072;&#1085;&#1080;&#1081; &#1079;&#1073;&#1110;&#1088; &#1076;&#1072;&#1085;&#1080;&#1093; &#1095;&#1077;&#1088;&#1077;&#1079; PHP: &#1055;&#1088;&#1086;&#1073;&#1085;&#1080;&#1081; &#1089;&#1094;&#1077;&#1085;&#1072;&#1088;&#1110;&#1081;\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>&#1055;&#1088;&#1080;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1086;, &#1085;&#1077;&#1086;&#1073;&#1093;&#1110;&#1076;&#1085;&#1086; &#1074;&#1080;&#1090;&#1103;&#1075;&#1090;&#1080; &#1074;&#1110;&#1076;&#1086;&#1084;&#1086;&#1089;&#1090;&#1110;, &#1097;&#1086; &#1084;&#1110;&#1089;&#1090;&#1103;&#1090;&#1100;&#1089;&#1103; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;&#1110; e-commerce &#1091; &#1074;&#1080;&#1075;&#1083;&#1103;&#1076;&#1110; &#1089;&#1087;&#1080;&#1089;&#1082;&#1091; &#1090;&#1086;&#1074;&#1072;&#1088;&#1110;&#1074; (&#1085;&#1080;&#1078;&#1095;&#1077; &#1087;&#1086;&#1082;&#1072;&#1079;&#1091;&#1108;&#1090;&#1100;&#1089;&#1103; &#1087;&#1088;&#1086;&#1089;&#1090;&#1080;&#1081; &#1074;&#1080;&#1087;&#1072;&#1076;&#1086;&#1082;, &#1091; &#1085;&#1072;&#1089;&#1090;&#1091;&#1087;&#1085;&#1080;&#1093; &#1088;&#1086;&#1079;&#1076;&#1110;&#1083;&#1072;&#1093; &#1073;&#1091;&#1076;&#1091;&#1090;&#1100; &#1073;&#1110;&#1083;&#1100;&#1096; &#1089;&#1082;&#1083;&#1072;&#1076;&#1085;&#1110; &#1079;&#1072;&#1076;&#1072;&#1095;&#1110;). &#1055;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086; &#1086;&#1090;&#1088;&#1080;&#1084;&#1072;&#1090;&#1080; &#1085;&#1072;&#1081;&#1084;&#1077;&#1085;&#1091;&#1074;&#1072;&#1085;&#1085;&#1103;, &#1074;&#1072;&#1088;&#1090;&#1110;&#1089;&#1090;&#1100; &#1090;&#1072; &#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;&#1085;&#1103; &#1082;&#1086;&#1078;&#1085;&#1086;&#1075;&#1086; &#1087;&#1088;&#1077;&#1076;&#1084;&#1077;&#1090;&#1072; &#1090;&#1072; &#1079;&#1073;&#1077;&#1088;&#1077;&#1075;&#1090;&#1080; &#1094;&#1102; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102; &#1091; &#1074;&#1080;&#1075;&#1083;&#1103;&#1076;&#1110; CSV. &#1054;&#1089;&#1100; &#1085;&#1072;&#1081;&#1087;&#1088;&#1103;&#1084;&#1086;&#1083;&#1110;&#1085;&#1110;&#1081;&#1085;&#1110;&#1096;&#1080;&#1081; &#1096;&#1083;&#1103;&#1093;.\u003C/p>\n\u003Cp>\u003Ccode>&lt;?php\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$url = 'https://sample.com/items';\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$html = file_get_contents($url);\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$dom = new DOMDocument();\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$dom-&gt;loadHTML($html);\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$items = $dom-&gt;getElementsByTagName('article');\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$data = [];\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>foreach ($items as $item) { // Fixed variable name from $items to $item\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>&nbsp; &nbsp; $name = $item-&gt;getElementsByTagName('h2')[0]-&gt;textContent;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>&nbsp; &nbsp; $price = $item-&gt;getElementsByTagName('span')[0]-&gt;textContent;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>&nbsp; &nbsp; $image = $item-&gt;getElementsByTagName('img')[0]-&gt;getAttribute('src');\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>&nbsp; &nbsp; $data[] = [$name, $price, $image];\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$fp = fopen('items.csv', 'w');\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>foreach ($data as $fields) {\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>&nbsp; &nbsp; fputcsv($fp, $fields);\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>fclose($fp);\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>?&gt;\u003C/code>\u003C/p>\n\u003Cp>&#1052;&#1080; &#1089;&#1087;&#1086;&#1095;&#1072;&#1090;&#1082;&#1091; &#1087;&#1077;&#1088;&#1077;&#1076;&#1072;&#1108;&#1084;&#1086; HTTP-&#1079;&#1072;&#1087;&#1080;&#1090; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090; &#1079;&#1072; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1075;&#1086;&#1102; \u003Ccode>file_get_contents()\u003C/code>, &#1087;&#1086;&#1090;&#1110;&#1084; &#1087;&#1077;&#1088;&#1077;&#1082;&#1083;&#1102;&#1095;&#1072;&#1108;&#1084;&#1086;&#1089;&#1103; &#1085;&#1072; &#1089;&#1080;&#1085;&#1090;&#1072;&#1082;&#1089;&#1080;&#1095;&#1085;&#1080;&#1081; &#1072;&#1085;&#1072;&#1083;&#1110;&#1079; &#1074;&#1084;&#1110;&#1089;&#1090;&#1091; HTML &#1079; \u003Ccode>DOMDocument\u003C/code> &#1090;&#1072; &#1086;&#1090;&#1088;&#1080;&#1084;&#1091;&#1108;&#1084;&#1086; &#1074;&#1110;&#1076;&#1087;&#1086;&#1074;&#1110;&#1076;&#1085;&#1091; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102; &#1079;&#1072; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1075;&#1086;&#1102; &#1084;&#1077;&#1090;&#1086;&#1076;&#1091; \u003Ccode>getElementsByTagName()\u003C/code>. &#1055;&#1086;&#1090;&#1110;&#1084; &#1084;&#1086;&#1078;&#1085;&#1072; &#1079;&#1073;&#1077;&#1088;&#1077;&#1075;&#1090;&#1080; &#1086;&#1090;&#1088;&#1080;&#1084;&#1072;&#1085;&#1110; &#1076;&#1072;&#1085;&#1110; &#1074; &#1084;&#1072;&#1089;&#1080;&#1074;&#1110; &#1076;&#1083;&#1103; &#1079;&#1072;&#1087;&#1080;&#1089;&#1091; &#1074; CSV-&#1092;&#1072;&#1081;&#1083; &#1095;&#1077;&#1088;&#1077;&#1079; \u003Ccode>fputcsv()\u003C/code>.&nbsp;\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor3\">\u003C/a>&#1045;&#1074;&#1086;&#1083;&#1102;&#1094;&#1110;&#1103;. &#1041;&#1110;&#1073;&#1083;&#1110;&#1086;&#1090;&#1077;&#1082;&#1080; &#1090;&#1072; &#1110;&#1085;&#1089;&#1090;&#1088;&#1091;&#1084;&#1077;&#1085;&#1090;&#1080; PHP\u003C/h3>\n\u003Ch3>\u003Ca name=\"anchor4\">\u003C/a>1. Goutte\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>\u003Ca href=\"https://github.com/FriendsOfPHP/Goutte\" target=\"_blank\" rel=\"noopener\">Goutte &#1089;&#1083;&#1091;&#1075;&#1091;&#1108; &#1087;&#1086;&#1074;&#1085;&#1086;&#1092;&#1091;&#1085;&#1082;&#1094;&#1110;&#1086;&#1085;&#1072;&#1083;&#1100;&#1085;&#1086;&#1102; &#1073;&#1110;&#1073;&#1083;&#1110;&#1086;&#1090;&#1077;&#1082;&#1086;&#1102;\u003C/a> &#1074; &#1088;&#1072;&#1084;&#1082;&#1072;&#1093; &#1088;&#1086;&#1073;&#1086;&#1090;&#1080; &#1079; PHP. &#1031;&#1111; &#1079;&#1076;&#1072;&#1090;&#1085;&#1110; &#1086;&#1089;&#1074;&#1086;&#1111;&#1090;&#1080; &#1085;&#1086;&#1074;&#1072;&#1095;&#1082;&#1080;, &#1110; &#1074;&#1089;&#1077; &#1079;&#1072;&#1074;&#1076;&#1103;&#1082;&#1080; &#1079;&#1088;&#1086;&#1079;&#1091;&#1084;&#1110;&#1083;&#1086;&#1084;&#1091; &#1086;&#1073;'&#1108;&#1082;&#1090;&#1085;&#1086;-&#1086;&#1088;&#1110;&#1108;&#1085;&#1090;&#1086;&#1074;&#1072;&#1085;&#1086;&#1084;&#1091; &#1093;&#1072;&#1088;&#1072;&#1082;&#1090;&#1077;&#1088;&#1091;. &#1065;&#1086; &#1089;&#1090;&#1086;&#1089;&#1091;&#1108;&#1090;&#1100;&#1089;&#1103; &#1110;&#1085;&#1096;&#1080;&#1093; &#1087;&#1077;&#1088;&#1077;&#1074;&#1072;&#1075;, &#1090;&#1086; &#1094;&#1077; &#1082;&#1086;&#1084;'&#1102;&#1085;&#1110;&#1090;&#1110; &#1074;&#1088;&#1072;&#1078;&#1072;&#1102;&#1095;&#1080;&#1093; &#1088;&#1086;&#1079;&#1084;&#1110;&#1088;&#1110;&#1074;, &#1086;&#1073;&#1096;&#1080;&#1088;&#1085;&#1072; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1072;&#1094;&#1110;&#1103; &#1110;, &#1085;&#1072;&#1088;&#1077;&#1096;&#1090;&#1110;, &#1096;&#1074;&#1080;&#1076;&#1082;&#1110;&#1089;&#1090;&#1100;. &#1063;&#1077;&#1088;&#1077;&#1079; &#1090;&#1077;, &#1097;&#1086; Goutte &#1087;&#1086;&#1082;&#1083;&#1072;&#1076;&#1072;&#1108;&#1090;&#1100;&#1089;&#1103; &#1085;&#1072; HTTP 1.1, &#1073;&#1088;&#1072;&#1091;&#1079;&#1077;&#1088;&#1091; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086; &#1083;&#1080;&#1096;&#1077; &#1086;&#1076;&#1085;&#1077; &#1079;'&#1108;&#1076;&#1085;&#1072;&#1085;&#1085;&#1103; &#1079; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1086;&#1084;. &#1055;&#1110;&#1089;&#1083;&#1103; &#1094;&#1100;&#1086;&#1075;&#1086; &#1086;&#1076;&#1085;&#1077; &#1081; &#1090;&#1077; &#1078; &#1079;'&#1108;&#1076;&#1085;&#1072;&#1085;&#1085;&#1103; &#1073;&#1091;&#1076;&#1077; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1086;&#1074;&#1091;&#1074;&#1072;&#1090;&#1080;&#1089;&#1103; &#1076;&#1083;&#1103; &#1074;&#1089;&#1110;&#1093; &#1085;&#1072;&#1089;&#1090;&#1091;&#1087;&#1085;&#1080;&#1093; &#1079;&#1072;&#1087;&#1080;&#1090;&#1110;&#1074;. &#1028; &#1081; &#1085;&#1077;&#1076;&#1086;&#1083;&#1110;&#1082;&#1080;. &#1053;&#1072;&#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;, &#1084;&#1086;&#1078;&#1091;&#1090;&#1100; &#1074;&#1080;&#1085;&#1080;&#1082;&#1085;&#1091;&#1090;&#1080; &#1085;&#1077;&#1087;&#1077;&#1088;&#1077;&#1073;&#1086;&#1088;&#1085;&#1110; &#1087;&#1077;&#1088;&#1077;&#1096;&#1082;&#1086;&#1076;&#1080; &#1097;&#1086;&#1076;&#1086; &#1076;&#1080;&#1085;&#1072;&#1084;&#1110;&#1095;&#1085;&#1086;&#1075;&#1086; &#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090;&#1091;.\u003C/p>\n\u003Cp>&#1057;&#1087;&#1088;&#1086;&#1073;&#1091;&#1108;&#1084;&#1086; Goutte, &#1097;&#1086;&#1073; &#1079;&#1088;&#1086;&#1073;&#1080;&#1090;&#1080; &#1082;&#1083;&#1110;&#1082; &#1085;&#1072; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086;&#1084;&#1091; &#1089;&#1072;&#1081;&#1090;&#1110; (&#1103;&#1082; &#1110; &#1087;&#1088;&#1080; &#1110;&#1085;&#1096;&#1080;&#1093; &#1087;&#1086;&#1076;&#1110;&#1073;&#1085;&#1080;&#1093; &#1084;&#1072;&#1085;&#1110;&#1087;&#1091;&#1083;&#1103;&#1094;&#1110;&#1103;&#1093;, &#1085;&#1077; &#1079;&#1072;&#1073;&#1091;&#1074;&#1072;&#1081;&#1090;&#1077; &#1087;&#1088;&#1086; &#1088;&#1077;&#1079;&#1080;&#1076;&#1077;&#1085;&#1090;&#1085;&#1110; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110; &#1074;&#1110;&#1076; Dexodata, &#1072; &#1090;&#1072;&#1082;&#1086;&#1078; &#1087;&#1088;&#1086; &#1085;&#1072;&#1096;&#1110; &#1084;&#1086;&#1073;&#1110;&#1083;&#1100;&#1085;&#1110; &#1072;&#1076;&#1088;&#1077;&#1089;&#1080; &#1090;&#1072; \u003Ca href=\"https://dexodata.com/ru/pricing\" target=\"_blank\" rel=\"noopener\">&#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1085;&#1110; IP &#1074;&#1110;&#1076; 3,65 USD &#1079;&#1072; 1 &#1043;&#1073;\u003C/a>).\u003C/p>\n\u003Cp>&#1044;&#1083;&#1103; &#1087;&#1086;&#1095;&#1072;&#1090;&#1082;&#1091; \u003Ca href=\"https://getcomposer.org/\" target=\"_blank\" rel=\"noopener\">&#1074;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1084;&#1086; Composer\u003C/a>. &#1058;&#1072;&#1082; &#1084;&#1086;&#1078;&#1085;&#1072; &#1073;&#1091;&#1076;&#1077; &#1091;&#1087;&#1088;&#1072;&#1074;&#1083;&#1103;&#1090;&#1080; &#1079;&#1072;&#1083;&#1077;&#1078;&#1085;&#1086;&#1089;&#1090;&#1103;&#1084;&#1080; &#1110; &#1074;&#1079;&#1072;&#1075;&#1072;&#1083;&#1110; &#1087;&#1088;&#1072;&#1094;&#1102;&#1074;&#1072;&#1090;&#1080; &#1079; &#1073;&#1110;&#1073;&#1083;&#1110;&#1086;&#1090;&#1077;&#1082;&#1072;&#1084;&#1080;. &#1044;&#1072;&#1108;&#1084;&#1086; &#1074;&#1074;&#1086;&#1076;&#1085;&#1091; &#1074; &#1090;&#1077;&#1088;&#1084;&#1110;&#1085;&#1072;&#1083;&#1110;:\u003C/p>\n\u003Cp>\u003Ccode>composer require fabpot/goutte\u003C/code>\u003C/p>\n\u003Cp>&#1055;&#1086;&#1090;&#1110;&#1084; &#1089;&#1090;&#1074;&#1086;&#1088;&#1102;&#1108;&#1084;&#1086; PHP-&#1089;&#1082;&#1088;&#1080;&#1087;&#1090; &#1110; &#1085;&#1072;&#1079;&#1080;&#1074;&#1072;&#1108;&#1084;&#1086;, &#1103;&#1082; &#1093;&#1086;&#1095;&#1077;&#1084;&#1086;. &#1042;&#1110;&#1076;&#1082;&#1088;&#1080;&#1074;&#1072;&#1108;&#1084;&#1086; &#1081;&#1086;&#1075;&#1086; &#1110; &#1074;&#1085;&#1086;&#1089;&#1080;&#1084;&#1086; &#1082;&#1086;&#1076; &#1076;&#1083;&#1103; &#1087;&#1086;&#1095;&#1072;&#1090;&#1082;&#1091; &#1088;&#1086;&#1073;&#1086;&#1090;&#1080; &#1079; Goutte:\u003C/p>\n\u003Cp>\u003Ccode>require 'vendor/autoload.php';\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>use Goutte\\Client;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$client = new Client();\u003C/code>\u003C/p>\n\u003Cp>Goutte &#1084;&#1080; &#1079;&#1072;&#1087;&#1091;&#1089;&#1090;&#1080;&#1083;&#1080;! &#1057;&#1090;&#1072;&#1074;&#1080;&#1084;&#1086; &#1094;&#1077;&#1081; &#1082;&#1086;&#1076; &#1074; &#1082;&#1110;&#1085;&#1094;&#1110; &#1092;&#1072;&#1081;&#1083;&#1091;, &#1097;&#1086;&#1073; &#1091;&#1093;&#1086;&#1087;&#1080;&#1090;&#1080; URL &#1095;&#1077;&#1088;&#1077;&#1079; &#1092;&#1091;&#1085;&#1082;&#1094;&#1110;&#1102; \u003Ccode>client-&gt;request()\u003C/code>.\u003C/p>\n\u003Cp>\u003Ccode>$url = \"http://instance.com/\";\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$crawler = $client-&gt;request('GET', $url);\u003C/code>\u003C/p>\n\u003Cp>&nbsp;\u003C/p>\n\u003Cp>\u003Ccode>// Click on the \"More information...\" link\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$link = $crawler-&gt;selectLink('More information&hellip;')-&gt;link();\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$crawler = $client-&gt;click($link);\u003C/code>\u003C/p>\n\u003Cp>&#1054;&#1089;&#1100; &#1090;&#1072;&#1082; &#1084;&#1080; &#1081; &#1074;&#1110;&#1076;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1080;&#1089;&#1103; &#1076;&#1086; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086;&#1111; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1080; &#1110; &#1076;&#1072;&#1083;&#1080; &#1082;&#1086;&#1084;&#1072;&#1085;&#1076;&#1091; &#1085;&#1072; &#1082;&#1083;&#1110;&#1082;.\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor5\">\u003C/a>2. Simple HTML DOM\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>&#1041;&#1091;&#1076;&#1091;&#1095;&#1080; &#1087;&#1072;&#1088;&#1089;&#1077;&#1088;&#1086;&#1084;, &#1094;&#1103; &#1087;&#1088;&#1086;&#1075;&#1088;&#1072;&#1084;&#1072; &#1087;&#1088;&#1080;&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1072; &#1076;&#1083;&#1103; &#1088;&#1086;&#1073;&#1086;&#1090;&#1080; &#1079; &#1073;&#1091;&#1076;&#1100;-&#1103;&#1082;&#1080;&#1084; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1086;&#1084; HTML. &#1055;&#1083;&#1102;&#1089; &#1074; &#1090;&#1086;&#1084;&#1091;, &#1097;&#1086; &#1081;&#1086;&#1075;&#1086; &#1083;&#1077;&#1075;&#1082;&#1086; &#1086;&#1089;&#1074;&#1086;&#1111;&#1090;&#1080;. &#1042;&#1110;&#1085; &#1085;&#1077; &#1089;&#1090;&#1088;&#1086;&#1075;&#1086; &#1087;&#1088;&#1080;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1080;&#1081; &#1076;&#1086; &#1079;&#1086;&#1074;&#1085;&#1110;&#1096;&#1085;&#1110;&#1093; &#1084;&#1072;&#1090;&#1077;&#1088;&#1110;&#1072;&#1083;&#1110;&#1074;, &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1080;&#1093; &#1079; JS, &#1103;&#1082;&#1110; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086; &#1073;&#1091;&#1083;&#1086; &#1073; &#1087;&#1110;&#1076;&#1074;&#1072;&#1085;&#1090;&#1072;&#1078;&#1091;&#1074;&#1072;&#1090;&#1080; &#1086;&#1082;&#1088;&#1077;&#1084;&#1086; &#1076;&#1086; &#1089;&#1090;&#1072;&#1088;&#1090;&#1091; &#1088;&#1086;&#1073;&#1086;&#1090;&#1080;. &#1030;&#1085;&#1096;&#1110; &#1076;&#1086;&#1089;&#1090;&#1086;&#1111;&#1085;&#1089;&#1090;&#1074;&#1072; &#1074;&#1082;&#1083;&#1102;&#1095;&#1072;&#1102;&#1090;&#1100; &#1096;&#1074;&#1080;&#1076;&#1082;&#1110;&#1089;&#1090;&#1100; (&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095;&#1072;&#1084; &#1085;&#1077; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086; &#1079;&#1072;&#1074;&#1072;&#1085;&#1090;&#1072;&#1078;&#1091;&#1074;&#1072;&#1090;&#1080; &#1074; &#1087;&#1072;&#1084;'&#1103;&#1090;&#1100; &#1094;&#1110;&#1083;&#1080;&#1081; &#1089;&#1072;&#1081;&#1090;, &#1090;&#1086;&#1084;&#1091; &#1084;&#1086;&#1078;&#1085;&#1072; &#1086;&#1076;&#1085;&#1086;&#1095;&#1072;&#1089;&#1085;&#1086; &#1086;&#1073;&#1088;&#1086;&#1073;&#1083;&#1103;&#1090;&#1080; &#1082;&#1110;&#1083;&#1100;&#1082;&#1072; HTML-&#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1086;&#1082; &#1073;&#1077;&#1079; &#1096;&#1082;&#1086;&#1076;&#1080; &#1076;&#1083;&#1103; &#1087;&#1088;&#1086;&#1076;&#1091;&#1082;&#1090;&#1080;&#1074;&#1085;&#1086;&#1089;&#1090;&#1110;) &#1110; &#1087;&#1088;&#1086;&#1089;&#1090;&#1086;&#1090;&#1091; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080; (&#1085;&#1077;&#1084;&#1072;&#1108; &#1085;&#1077;&#1086;&#1073;&#1093;&#1110;&#1076;&#1085;&#1086;&#1089;&#1090;&#1110; &#1089;&#1090;&#1072;&#1074;&#1080;&#1090;&#1080; &#1076;&#1086;&#1076;&#1072;&#1090;&#1082;&#1086;&#1074;&#1077; &#1055;&#1047; &#1072;&#1073;&#1086; &#1073;&#1110;&#1073;&#1083;&#1110;&#1086;&#1090;&#1077;&#1082;&#1080;, &#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1085;&#1100;&#1086; PHP).\u003C/p>\n\u003Cp>&#1054;&#1073;&#1084;&#1077;&#1078;&#1077;&#1085;&#1085;&#1103; &#1090;&#1077;&#1078; &#1108;. &#1044;&#1086;&#1089;&#1090;&#1091;&#1087; &#1076;&#1086; &#1082;&#1086;&#1084;&#1087;&#1086;&#1085;&#1077;&#1085;&#1090;&#1110;&#1074; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1080; &#1073;&#1091;&#1076;&#1077; &#1086;&#1073;&#1084;&#1077;&#1078;&#1077;&#1085;&#1080;&#1081;: &#1084;&#1086;&#1078;&#1085;&#1072; &#1074;&#1080;&#1082;&#1086;&#1085;&#1091;&#1074;&#1072;&#1090;&#1080; &#1084;&#1072;&#1085;&#1110;&#1087;&#1091;&#1083;&#1103;&#1094;&#1110;&#1111; &#1079;&#1110; &#1089;&#1090;&#1088;&#1091;&#1082;&#1090;&#1091;&#1088;&#1086;&#1102;, &#1072;&#1083;&#1077; &#1074;&#1084;&#1110;&#1089;&#1090; &#1079;&#1072;&#1083;&#1080;&#1096;&#1080;&#1090;&#1100;&#1089;&#1103; &#1087;&#1086;&#1079;&#1072; &#1079;&#1086;&#1085;&#1086;&#1102; &#1076;&#1086;&#1089;&#1090;&#1091;&#1087;&#1091;. &#1030; &#1074;&#1079;&#1072;&#1075;&#1072;&#1083;&#1110; &#1090;&#1088;&#1077;&#1073;&#1072; &#1085;&#1077;&#1087;&#1086;&#1075;&#1072;&#1085;&#1086; &#1079;&#1085;&#1072;&#1090;&#1080; HTML. &#1040;&#1083;&#1077; &#1087;&#1077;&#1088;&#1077;&#1081;&#1076;&#1077;&#1084;&#1086; &#1076;&#1086; &#1087;&#1088;&#1072;&#1082;&#1090;&#1080;&#1082;&#1080;.\u003C/p>\n\u003Cp>&#1030;&#1076;&#1077;&#1084;&#1086; &#1085;&#1072; \u003Ca href=\"https://simplehtmldom.sourceforge.io/docs/1.9/index.html\" target=\"_blank\" rel=\"noopener\">&#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1091; &#1079; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1072;&#1094;&#1110;&#1108;&#1102; Simple HTML DOM\u003C/a>. &#1050;&#1086;&#1087;&#1110;&#1102;&#1108;&#1084;&#1086; \u003Ccode>simple_html_dom.php\u003C/code>. &#1042;&#1089;&#1090;&#1072;&#1074;&#1083;&#1103;&#1108;&#1084;&#1086; &#1074; &#1072;&#1082;&#1090;&#1080;&#1074;&#1085;&#1080;&#1081; &#1087;&#1088;&#1086;&#1077;&#1082;&#1090;. &#1043;&#1077;&#1085;&#1077;&#1088;&#1091;&#1108;&#1084;&#1086; &#1092;&#1072;&#1081;&#1083; PHP (&#1110;&#1084;&#1077;&#1085;&#1072; &#1079;&#1085;&#1086;&#1074;&#1091; &#1085;&#1077;&#1074;&#1072;&#1078;&#1083;&#1080;&#1074;&#1110;), &#1085;&#1077;&#1093;&#1072;&#1081; &#1073;&#1091;&#1076;&#1077; \u003Cspan style=\"color: #3598db;\">\u003Cem>\u003Cstrong>webscrapingstuff.php\u003C/strong>\u003C/em>\u003C/span>. &#1058;&#1077;&#1087;&#1077;&#1088; &#1074;&#1110;&#1076;&#1082;&#1088;&#1080;&#1074;&#1072;&#1108;&#1084;&#1086; &#1092;&#1072;&#1081;&#1083; &#1110; &laquo;&#1086;&#1079;&#1073;&#1088;&#1086;&#1102;&#1108;&#1084;&#1086;&raquo; &#1087;&#1088;&#1086;&#1077;&#1082;&#1090; &#1073;&#1110;&#1073;&#1083;&#1110;&#1086;&#1090;&#1077;&#1082;&#1086;&#1102; Simple HTML DOM:\u003C/p>\n\u003Cp>\u003Ccode>include('simple_html_dom_php');\u003C/code>\u003C/p>\n\u003Cp>&#1044;&#1072;&#1083;&#1110; &#1076;&#1086;&#1076;&#1072;&#1108;&#1084;&#1086; &#1082;&#1086;&#1076;, &#1103;&#1082;&#1080;&#1081; &#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100; &#1085;&#1072;&#1089; &#1076;&#1086; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1080;:\u003C/p>\n\u003Cp>\u003Ccode>$html = file_get_html('http://instance.com/')\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>file_get_html\u003C/code>, &#1103;&#1082; &#1095;&#1072;&#1089;&#1090;&#1080;&#1085;&#1072; Simple HTM DOM, &#1079;&#1076;&#1072;&#1090;&#1085;&#1072; &#1074;&#1080;&#1090;&#1103;&#1075;&#1090;&#1080; HTML &#1079;&#1110; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1080; &#1079; &#1079;&#1072;&#1076;&#1072;&#1085;&#1080;&#1084; URL. &#1055;&#1086;&#1090;&#1110;&#1084; &#1074;&#1086;&#1085;&#1072; &#1087;&#1110;&#1076;&#1074;&#1072;&#1085;&#1090;&#1072;&#1078;&#1091;&#1108; DOM-&#1086;&#1073;'&#1108;&#1082;&#1090; &#1076;&#1083;&#1103; &#1079;&#1073;&#1077;&#1088;&#1110;&#1075;&#1072;&#1085;&#1085;&#1103; &#1079;&#1084;&#1110;&#1085;&#1085;&#1086;&#1111; \u003Ccode>$html\u003C/code>.\u003C/p>\n\u003Cp>&#1055;&#1088;&#1080;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1086;, &#1085;&#1072;&#1084; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1077;&#1085; &#1075;&#1086;&#1083;&#1086;&#1074;&#1085;&#1080;&#1081; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;. &#1065;&#1086;&#1073; &#1086;&#1090;&#1088;&#1080;&#1084;&#1072;&#1090;&#1080; H1, &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1086;&#1074;&#1091;&#1108;&#1084;&#1086; &#1082;&#1086;&#1076;:\u003C/p>\n\u003Cp>\u003Ccode>echo $html-&gt;find('h1', 0)-&gt;plaintext;\u003C/code>\u003C/p>\n\u003Cp>&#1042;&#1110;&#1076;&#1082;&#1088;&#1080;&#1074;&#1072;&#1108;&#1084;&#1086; &#1087;&#1110;&#1076;&#1089;&#1091;&#1084;&#1082;&#1086;&#1074;&#1080;&#1081; &#1092;&#1072;&#1081;&#1083; &#1110; &#1079;&#1085;&#1072;&#1093;&#1086;&#1076;&#1080;&#1084;&#1086; &#1081;&#1086;&#1075;&#1086; &#1090;&#1072;&#1084;.\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor6\">\u003C/a>3. PHP Scraper\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>&#1071;&#1082; \u003Ca href=\"https://dexodata.com/en/data-scraping\" target=\"_blank\" rel=\"noopener\">&#1077;&#1082;&#1086;&#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1072; &#1076;&#1083;&#1103; &#1077;&#1090;&#1080;&#1095;&#1085;&#1086;&#1075;&#1086; &#1076;&#1072;&#1090;&#1072;-&#1093;&#1072;&#1088;&#1074;&#1077;&#1089;&#1090;&#1080;&#1085;&#1075;&#1091;, Dexodata\u003C/a> &#1085;&#1077; &#1084;&#1086;&#1078;&#1077; &#1086;&#1073;&#1110;&#1081;&#1090;&#1080; &#1091;&#1074;&#1072;&#1075;&#1086;&#1102; PHP Scraper. &#1044;&#1083;&#1103; &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095;&#1110;&#1074; &#1094;&#1077;&#1081; &#1074;&#1072;&#1088;&#1110;&#1072;&#1085;&#1090; &#1074;&#1110;&#1076;&#1082;&#1088;&#1080;&#1074;&#1072;&#1108; &#1082;&#1072;&#1085;&#1072;&#1083; &#1076;&#1083;&#1103; &#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1110;&#1085;&#1075;&#1091; &#1079;&#1072; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1075;&#1086;&#1102; PHP-&#1089;&#1082;&#1088;&#1080;&#1087;&#1090;&#1110;&#1074;. &#1058;&#1072;&#1082;&#1080;&#1081; &#1087;&#1110;&#1076;&#1093;&#1110;&#1076; &#1085;&#1077; &#1087;&#1077;&#1088;&#1077;&#1076;&#1073;&#1072;&#1095;&#1072;&#1108; &#1085;&#1077;&#1086;&#1073;&#1093;&#1110;&#1076;&#1085;&#1086;&#1089;&#1090;&#1110; &#1087;&#1080;&#1089;&#1072;&#1090;&#1080; &#1073;&#1072;&#1075;&#1072;&#1090;&#1086; &#1082;&#1086;&#1076;&#1091;. &#1042;&#1089;&#1077;, &#1097;&#1086; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086;, &mdash; &#1094;&#1077; &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1091;&#1074;&#1072;&#1085;&#1085;&#1103; &#1090;&#1072;&#1082;&#1080;&#1093; &#1085;&#1077;&#1079;&#1072;&#1084;&#1099;&#1089;&#1083;&#1086;&#1074;&#1072;&#1090;&#1080;&#1093; &#1082;&#1086;&#1084;&#1072;&#1085;&#1076;, &#1103;&#1082; \u003Ccode>find_element_by_class\u003C/code> &#1072;&#1073;&#1086; \u003Ccode>find_element_by_id\u003C/code>. &#1031;&#1093; &#1074;&#1080;&#1089;&#1090;&#1072;&#1095;&#1080;&#1090;&#1100; &#1076;&#1083;&#1103; &#1079;&#1073;&#1086;&#1088;&#1091; &#1077;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;&#1110;&#1074; &#1079; &#1089;&#1072;&#1081;&#1090;&#1091; &#1087;&#1088;&#1080; &#1074;&#1074;&#1077;&#1076;&#1077;&#1085;&#1085;&#1110; id &#1090;&#1072; &#1082;&#1083;&#1072;&#1089;&#1091;.\u003C/p>\n\u003Cp>&#1040;&#1083;&#1077; &#1081; &#1073;&#1077;&#1079; &#1087;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084; &#1085;&#1077; &#1086;&#1073;&#1110;&#1081;&#1076;&#1077;&#1090;&#1100;&#1089;&#1103;. \u003Ca href=\"https://phpscraper.de\" target=\"_blank\" rel=\"noopener\">PHP Scraper\u003C/a> &#1084;&#1086;&#1078;&#1077; &#1085;&#1077; &#1074;&#1110;&#1076;&#1087;&#1086;&#1074;&#1110;&#1076;&#1072;&#1090;&#1080; &#1082;&#1086;&#1078;&#1085;&#1086;&#1084;&#1091; &#1084;&#1086;&#1078;&#1083;&#1080;&#1074;&#1086;&#1084;&#1091; &#1074;&#1072;&#1088;&#1110;&#1072;&#1085;&#1090;&#1091; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1072;&#1085;&#1085;&#1103;. &#1049;&#1086;&#1075;&#1086; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1072;&#1085;&#1085;&#1103; &laquo;&#1079;&#1072;&#1090;&#1086;&#1095;&#1077;&#1085;&#1077;&raquo; &#1087;&#1110;&#1076; &#1089;&#1072;&#1081;&#1090;&#1080; &#1085;&#1072; Apache &#1072;&#1073;&#1086; Nginx &#1090;&#1072; &#1085;&#1072;&#1083;&#1072;&#1096;&#1090;&#1086;&#1074;&#1072;&#1085;&#1110; &#1095;&#1077;&#1088;&#1077;&#1079; &#1072;&#1082;&#1090;&#1080;&#1074;&#1086;&#1074;&#1072;&#1085;&#1080;&#1081; &#1079;&#1072; &#1079;&#1072;&#1084;&#1086;&#1074;&#1095;&#1091;&#1074;&#1072;&#1085;&#1085;&#1103;&#1084; mod_rewrite. PHP Scraper &mdash; &#1085;&#1077; &#1074;&#1072;&#1088;&#1110;&#1072;&#1085;&#1090;, &#1103;&#1082;&#1097;&#1086; &#1090;&#1088;&#1077;&#1073;&#1072; &#1086;&#1090;&#1088;&#1080;&#1084;&#1091;&#1074;&#1072;&#1090;&#1080; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102; &#1079; API &#1072;&#1073;&#1086; &#1072;&#1085;&#1072;&#1083;&#1110;&#1079;&#1091;&#1074;&#1072;&#1090;&#1080; &#1089;&#1082;&#1083;&#1072;&#1076;&#1085;&#1110; HTML-&#1073;&#1083;&#1086;&#1082;&#1080;.\u003C/p>\n\u003Cp>&#1056;&#1091;&#1093;&#1072;&#1108;&#1084;&#1086;&#1089;&#1100; &#1076;&#1072;&#1083;&#1110;.\u003C/p>\n\u003Cp>&#1055;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086; &#1074;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1080; Composer, &#1103;&#1082; &#1094;&#1077; &#1073;&#1091;&#1083;&#1086; &#1079;&#1088;&#1086;&#1073;&#1083;&#1077;&#1085;&#1086; &#1074; &#1088;&#1086;&#1079;&#1076;&#1110;&#1083;&#1110; &#1079; Goutte. &#1055;&#1110;&#1089;&#1083;&#1103; &#1095;&#1086;&#1075;&#1086; &#1089;&#1090;&#1072;&#1074;&#1080;&#1084;&#1086; &#1090;&#1072;&#1084; &#1082;&#1086;&#1076; &#1076;&#1083;&#1103; &#1072;&#1082;&#1090;&#1080;&#1074;&#1072;&#1094;&#1110;&#1111;:\u003C/p>\n\u003Cp>\u003Ccode>composer require spekulatius/phpscraper\u003C/code>\u003C/p>\n\u003Cp>&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1072; &#1087;&#1086;&#1079;&#1072;&#1076;&#1091;, &#1072;&#1074;&#1090;&#1086;&#1084;&#1072;&#1090;&#1080;&#1095;&#1085;&#1080;&#1081; &#1087;&#1110;&#1076;&#1074;&#1072;&#1085;&#1090;&#1072;&#1078;&#1091;&#1074;&#1072;&#1095; Composer &#1087;&#1110;&#1076;&#1093;&#1086;&#1087;&#1080;&#1090;&#1100; &#1085;&#1072;&#1096; &#1087;&#1072;&#1082;&#1077;&#1090;. &#1071;&#1082;&#1097;&#1086; &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095; &#1087;&#1088;&#1072;&#1094;&#1102;&#1108; &#1079; VanillaPHP, &#1090;&#1086; &#1087;&#1110;&#1076;&#1074;&#1072;&#1085;&#1090;&#1072;&#1078;&#1091;&#1074;&#1072;&#1095;&#1110; &#1090;&#1088;&#1077;&#1073;&#1072; &#1110;&#1085;&#1090;&#1077;&#1075;&#1088;&#1091;&#1074;&#1072;&#1090;&#1080; &#1074; &#1089;&#1082;&#1088;&#1080;&#1087;&#1090;, &#1086;&#1089;&#1100; &#1090;&#1072;&#1082;:\u003C/p>\n\u003Cp>\u003Ccode>require 'vendor/autoload.php'\u003C/code>\u003C/p>\n\u003Cp>&#1042; &#1103;&#1082;&#1086;&#1089;&#1090;&#1110; &#1074;&#1087;&#1088;&#1072;&#1074;&#1080; &#1089;&#1090;&#1074;&#1086;&#1088;&#1080;&#1084;&#1086; &#1087;&#1088;&#1086;&#1077;&#1082;&#1090;, &#1103;&#1082;&#1080;&#1081; &#1079;&#1076;&#1072;&#1090;&#1085;&#1080;&#1081; &#1079;&#1072;&#1081;&#1090;&#1080; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;, &#1087;&#1086;&#1088;&#1072;&#1093;&#1091;&#1074;&#1072;&#1090;&#1080; &#1090;&#1072; &#1079;&#1110;&#1073;&#1088;&#1072;&#1090;&#1080; &#1088;&#1086;&#1079;&#1084;&#1110;&#1097;&#1077;&#1085;&#1110; &#1090;&#1072;&#1084; &#1087;&#1086;&#1089;&#1080;&#1083;&#1072;&#1085;&#1085;&#1103;. &#1047;&#1072;&#1087;&#1091;&#1089;&#1082;&#1072;&#1108;&#1084;&#1086; &#1087;&#1088;&#1086;&#1075;&#1088;&#1072;&#1084;&#1091; &#1110; &#1076;&#1072;&#1108;&#1084;&#1086; &#1111;&#1081; &#1079;&#1084;&#1110;&#1085;&#1085;&#1091;:\u003C/p>\n\u003Cp>\u003Ccode>$web = new \\spekulatius\\phpscraper();\u003C/code>\u003C/p>\n\u003Cp>&#1042;&#1082;&#1072;&#1079;&#1091;&#1108;&#1084;&#1086; &#1087;&#1088;&#1086;&#1075;&#1088;&#1072;&#1084;&#1110; &#1085;&#1072;&#1087;&#1088;&#1103;&#1084;&#1086;&#1082; &#1091; &#1074;&#1080;&#1075;&#1083;&#1103;&#1076;&#1110; URL:\u003C/p>\n\u003Cp>\u003Ccode>$web-&gt;go(' [http://instance.com/](http://instance.com/) ');\u003C/code>\u003C/p>\n\u003Cp>&#1042;&#1085;&#1086;&#1089;&#1080;&#1084;&#1086; &#1094;&#1077;&#1081; &#1088;&#1086;&#1079;&#1076;&#1110;&#1083; &#1082;&#1086;&#1076;&#1091;, &#1074;&#1110;&#1076;&#1087;&#1086;&#1074;&#1110;&#1076;&#1072;&#1083;&#1100;&#1085;&#1080;&#1081; &#1079;&#1072; &laquo;&#1074;&#1080;&#1089;&#1084;&#1080;&#1082;&#1091;&#1074;&#1072;&#1085;&#1085;&#1103;&raquo; &#1082;&#1086;&#1078;&#1085;&#1086;&#1075;&#1086; &#1087;&#1086;&#1089;&#1080;&#1083;&#1072;&#1085;&#1085;&#1103; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;&#1110; &#1090;&#1072; &#1074;&#1080;&#1074;&#1077;&#1076;&#1077;&#1085;&#1085;&#1103; &#1111;&#1093; &#1082;&#1110;&#1083;&#1100;&#1082;&#1086;&#1089;&#1090;&#1110;.\u003C/p>\n\u003Cp>\u003Ccode>// Print the number of links.\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>echo \"This page contains \" . count($web-&gt;links) . \" links.\n\n\";\u003C/code>\u003C/p>\n\u003Cp>&nbsp;\u003C/p>\n\u003Cp>\u003Ccode>// Loop through the links\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>foreach ($web-&gt;links as $link) {\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>echo \" - \" . $link . \"\n\";\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}\u003C/code>\u003C/p>\n\u003Cp>&nbsp;\u003C/p>\n\u003Cp>\u003Ccode>/**\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>* This code will print out:\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>*\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>* This page contains 1 link.\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>*\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>* - https://www.iana.org/domains/instance\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>*/\u003C/code>\u003C/p>\n\u003Cp>&#1053;&#1077; &#1079;&#1072;&#1073;&#1091;&#1074;&#1072;&#1081;&#1090;&#1077;: &#1084;&#1080; &#1090;&#1091;&#1090; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1086;&#1074;&#1091;&#1108;&#1084;&#1086; &#1074;&#1080;&#1075;&#1072;&#1076;&#1072;&#1085;&#1110; &#1072;&#1076;&#1088;&#1077;&#1089;&#1080;.\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor7\">\u003C/a>4. cURL &#1076;&#1083;&#1103; &#1079;&#1073;&#1086;&#1088;&#1091; &#1076;&#1072;&#1085;&#1080;&#1093; &#1079; PHP\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>&#1056;&#1086;&#1079;&#1075;&#1083;&#1103;&#1085;&#1091;&#1074;&#1096;&#1080; &#1090;&#1088;&#1080; &#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;&#1080;, &#1074;&#1080;&#1076;&#1110;&#1083;&#1080;&#1084;&#1086; &#1074; &#1086;&#1082;&#1088;&#1077;&#1084;&#1080;&#1081; &#1088;&#1086;&#1079;&#1076;&#1110;&#1083;, &#1084;&#1086;&#1078;&#1083;&#1080;&#1074;&#1086;, &#1085;&#1072;&#1081;&#1074;&#1110;&#1076;&#1086;&#1084;&#1110;&#1096;&#1091; &#1086;&#1087;&#1094;&#1110;&#1102; &mdash; \u003Ccode>cURL\u003C/code>. &#1062;&#1077; &#1073;&#1110;&#1073;&#1083;&#1110;&#1086;&#1090;&#1077;&#1082;&#1072; &#1090;&#1072; &#1110;&#1085;&#1089;&#1090;&#1088;&#1091;&#1084;&#1077;&#1085;&#1090; &#1076;&#1083;&#1103; &#1088;&#1086;&#1073;&#1086;&#1090;&#1080; &#1079; &#1082;&#1086;&#1084;&#1072;&#1085;&#1076;&#1085;&#1080;&#1084; &#1088;&#1103;&#1076;&#1082;&#1086;&#1084;, &#1097;&#1086; &#1076;&#1086;&#1079;&#1074;&#1086;&#1083;&#1103;&#1108; &#1074;&#1110;&#1076;&#1087;&#1088;&#1072;&#1074;&#1083;&#1103;&#1090;&#1080; &#1090;&#1072; &#1086;&#1090;&#1088;&#1080;&#1084;&#1091;&#1074;&#1072;&#1090;&#1080; &#1092;&#1072;&#1081;&#1083;&#1080; &#1095;&#1077;&#1088;&#1077;&#1079; HTTP &#1090;&#1072; FTP. &#1055;&#1088;&#1080; &#1081;&#1086;&#1075;&#1086; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1072;&#1085;&#1085;&#1110; &#1084;&#1086;&#1078;&#1085;&#1072; &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1086;&#1074;&#1091;&#1074;&#1072;&#1090;&#1080; &#1075;&#1077;&#1086;&#1090;&#1072;&#1088;&#1075;&#1077;&#1090;&#1086;&#1074;&#1072;&#1085;&#1110; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110; &#1074;&#1110;&#1076; Dexodata (&#1074; &#1090;&#1086;&#1084;&#1091; &#1095;&#1080;&#1089;&#1083;&#1110; &#1090;&#1110;, &#1097;&#1086; &#1085;&#1072;&#1076;&#1072;&#1102;&#1090;&#1100;&#1089;&#1103; &#1074; &#1088;&#1072;&#1084;&#1082;&#1072;&#1093; &#1073;&#1077;&#1079;&#1082;&#1086;&#1096;&#1090;&#1086;&#1074;&#1085;&#1086;&#1075;&#1086; &#1087;&#1088;&#1086;&#1073;&#1085;&#1086;&#1075;&#1086; &#1087;&#1077;&#1088;&#1110;&#1086;&#1076;&#1091;), &#1087;&#1077;&#1088;&#1077;&#1076;&#1072;&#1074;&#1072;&#1090;&#1080; &#1076;&#1072;&#1085;&#1110; &#1095;&#1077;&#1088;&#1077;&#1079; SSL-&#1079;'&#1108;&#1076;&#1085;&#1072;&#1085;&#1085;&#1103; &#1090;&#1072; &#1073;&#1072;&#1075;&#1072;&#1090;&#1086; &#1110;&#1085;&#1096;&#1086;&#1075;&#1086;. &#1055;&#1088;&#1086;&#1090;&#1077;&#1089;&#1090;&#1091;&#1108;&#1084;&#1086; &#1094;&#1077;&#1081; &#1074;&#1072;&#1088;&#1110;&#1072;&#1085;&#1090; &#1085;&#1072; &#1087;&#1088;&#1072;&#1082;&#1090;&#1080;&#1094;&#1110;.\u003C/p>\n\u003Cp>&#1057;&#1090;&#1074;&#1086;&#1088;&#1102;&#1108;&#1084;&#1086; PHP-&#1089;&#1082;&#1088;&#1080;&#1087;&#1090; &#1110; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1086;&#1074;&#1091;&#1108;&#1084;&#1086; &#1079;&#1072;&#1087;&#1088;&#1086;&#1087;&#1086;&#1085;&#1086;&#1074;&#1072;&#1085;&#1080;&#1081; &#1082;&#1086;&#1076;:\u003C/p>\n\u003Cp>\u003Ccode>// Initialize curl\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$ch = curl_init();\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// URL for Scraping\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($ch, CURLOPT_URL,\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>'https://example.com');\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// Retun Transfer True\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$output = curl_exec($ch);\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// Closing cURL\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_close($ch);\u003C/code>\u003C/p>\n\u003Cp>&#1042;&#1080;&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1085;&#1103; \u003Ccode>CURLOPT_RETURNTRANSFER\u003C/code> &#1103;&#1082; \u003Ccode>TRUE \u003C/code>&#1085;&#1072;&#1076;&#1072;&#1108; &#1085;&#1072;&#1084; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1091; &#1091; &#1074;&#1080;&#1075;&#1083;&#1103;&#1076;&#1110; &#1088;&#1103;&#1076;&#1082;&#1072;. &#1040; &#1079;&#1085;&#1072;&#1095;&#1080;&#1090;&#1100;, &#1085;&#1072;&#1096; &#1082;&#1086;&#1076; &#1084;&#1086;&#1078;&#1077; &#1079;&#1072;&#1073;&#1088;&#1072;&#1090;&#1080; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102; &#1076;&#1083;&#1103; &#1087;&#1086;&#1076;&#1072;&#1083;&#1100;&#1096;&#1080;&#1093; &#1076;&#1110;&#1081;.\u003C/p>\n\u003Cp>&#1042;&#1079;&#1075;&#1083;&#1103;&#1085;&#1091;&#1090;&#1080; &#1085;&#1072; &#1094;&#1110; &#1076;&#1072;&#1085;&#1110; &#1084;&#1086;&#1078;&#1085;&#1072; &#1095;&#1077;&#1088;&#1077;&#1079; echo &#1079; &#1079;&#1084;&#1110;&#1085;&#1085;&#1086;&#1102; &#1076;&#1083;&#1103; &#1079;&#1073;&#1077;&#1088;&#1110;&#1075;&#1072;&#1085;&#1085;&#1103; &#1076;&#1072;&#1085;&#1080;&#1093;:\u003C/p>\n\u003Cp>\u003Ccode>echo $output\u003C/code>\u003C/p>\n\u003Cp>&#1053;&#1072;&#1089;&#1090;&#1091;&#1087;&#1085;&#1080;&#1081; &#1082;&#1088;&#1086;&#1082; &mdash; &#1088;&#1086;&#1079;&#1084;&#1110;&#1089;&#1090;&#1080;&#1090;&#1080; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102; &#1074; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1110; DOM, &#1097;&#1086; &#1076;&#1086;&#1079;&#1074;&#1086;&#1083;&#1080;&#1090;&#1100; &#1085;&#1072;&#1084; &#1087;&#1110;&#1076;&#1076;&#1072;&#1090;&#1080; &#1111;&#1111; &#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1110;&#1085;&#1075;&#1091;.\u003C/p>\n\u003Cp>\u003Ccode>$dom = new DOMDocument;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$dom-&gt;loadHTML($output);\u003C/code>\u003C/p>\n\u003Cp>&#1042; &#1076;&#1072;&#1085;&#1080;&#1081; &#1084;&#1086;&#1084;&#1077;&#1085;&#1090; &#1091; &#1085;&#1072;&#1089; &#1108; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1103; &#1091; &#1074;&#1080;&#1075;&#1083;&#1103;&#1076;&#1110; &#1103;&#1082;&#1086;&#1111;&#1089;&#1100; HTML-&#1089;&#1090;&#1088;&#1091;&#1082;&#1090;&#1091;&#1088;&#1080; &#1074;&#1089;&#1077;&#1088;&#1077;&#1076;&#1080;&#1085;&#1110; &#1079;&#1084;&#1110;&#1085;&#1085;&#1086;&#1111;. &#1056;&#1086;&#1079;&#1084;&#1110;&#1089;&#1090;&#1110;&#1090;&#1100; &#1076;&#1086;&#1076;&#1072;&#1090;&#1082;&#1086;&#1074;&#1080;&#1081; &#1082;&#1086;&#1076;, &#1097;&#1086;&#1073; &#1088;&#1086;&#1079;&#1076;&#1088;&#1091;&#1082;&#1091;&#1074;&#1072;&#1090;&#1080; &#1082;&#1086;&#1078;&#1085;&#1077; &#1087;&#1086;&#1089;&#1080;&#1083;&#1072;&#1085;&#1085;&#1103;, &#1076;&#1086;&#1089;&#1090;&#1091;&#1087;&#1085;&#1077; &#1085;&#1072; HTML-&#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1094;&#1110;:\u003C/p>\n\u003Cp>\u003Ccode>$tags = $dom-&gt;getElementsByTagName('a');\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>for($I=0; $I &lt; $tags-&gt;length; $I++){\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$link = $tags-&gt;item($i);\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>echo \" - \" . $link . \"\n\";\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}\u003C/code>\u003C/p>\n\u003Cp>&#1071;&#1082; &#1077;&#1082;&#1086;&#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1072; &#1075;&#1077;&#1086;&#1090;&#1072;&#1088;&#1075;&#1077;&#1090;&#1086;&#1074;&#1072;&#1085;&#1080;&#1093; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110;, &#1079;&#1072;&#1082;&#1083;&#1080;&#1082;&#1072;&#1108;&#1084;&#1086; &#1085;&#1077; &#1079;&#1072;&#1073;&#1091;&#1074;&#1072;&#1090;&#1080; &#1087;&#1088;&#1086; &#1079;&#1072;&#1093;&#1080;&#1089;&#1090; &#1074;&#1110;&#1076; &#1074;&#1080;&#1103;&#1074;&#1083;&#1077;&#1085;&#1085;&#1103; &#1079; &#1073;&#1086;&#1082;&#1091; &#1072;&#1076;&#1084;&#1110;&#1085;&#1110;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;&#1110;&#1074; &#1079;&#1072; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1075;&#1086;&#1102; &#1072;&#1076;&#1088;&#1077;&#1089;, &#1103;&#1082;&#1110; &#1084;&#1080; &#1085;&#1072;&#1076;&#1072;&#1108;&#1084;&#1086; (&#1085;&#1072;&#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;, &#1085;&#1072;&#1096;&#1110; \u003Ca href=\"https://dexodata.com/ru/residential-proxies\" target=\"_blank\" rel=\"noopener\">&#1088;&#1077;&#1079;&#1080;&#1076;&#1077;&#1085;&#1090;&#1085;&#1110; IP &#1074;&#1110;&#1076; &#1110;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090;-&#1087;&#1088;&#1086;&#1074;&#1072;&#1081;&#1076;&#1077;&#1088;&#1110;&#1074;\u003C/a> &#1072;&#1073;&#1086; &#1084;&#1086;&#1073;&#1110;&#1083;&#1100;&#1085;&#1110; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110; &#1079; &#1088;&#1086;&#1090;&#1072;&#1094;&#1110;&#1108;&#1102;). Dexodata &#1087;&#1110;&#1076;&#1082;&#1072;&#1078;&#1077;, &#1103;&#1082; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1086;&#1074;&#1091;&#1074;&#1072;&#1090;&#1080; &#1111;&#1093; &#1091; \u003Ccode>cURL\u003C/code>. &#1055;&#1088;&#1086;&#1089;&#1090;&#1086; &#1076;&#1086;&#1090;&#1088;&#1080;&#1084;&#1091;&#1081;&#1090;&#1077;&#1089;&#1100; &#1089;&#1080;&#1085;&#1090;&#1072;&#1082;&#1089;&#1080;&#1089;&#1091;:\u003C/p>\n\u003Cp>\u003Ccode>curl --proxy &lt;proxy-ip&gt;:&lt;proxy-port&gt; &lt;url&gt;\u003C/code>\u003C/p>\n\u003Cp>&#1042; &lt;&lt;proxy-ip&gt;&gt; &#1089;&#1090;&#1072;&#1074;&#1080;&#1084;&#1086; &#1072;&#1076;&#1088;&#1077;&#1089;&#1091;, &#1072; &#1089;&#1077;&#1082;&#1094;&#1110;&#1103; &lt;&lt;proxy-port&gt;&gt; &#1087;&#1088;&#1080;&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1072; &#1076;&#1083;&#1103; &#1085;&#1086;&#1084;&#1077;&#1088;&#1072; &#1087;&#1086;&#1088;&#1090;&#1091;. &#1053;&#1072; &#1074;&#1080;&#1093;&#1086;&#1076;&#1110; &#1087;&#1086;&#1074;&#1080;&#1085;&#1085;&#1086; &#1074;&#1080;&#1081;&#1090;&#1080; &#1085;&#1077;&#1097;&#1086; &#1085;&#1072; &#1079;&#1088;&#1072;&#1079;&#1086;&#1082;:\u003C/p>\n\u003Cp>\u003Ccode>curl --proxy 193.191.56.12:7070 -k https://example.com\u003C/code>\u003C/p>\n\u003Cp>&#1071;&#1082;&#1097;&#1086; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1086;&#1074;&#1091;&#1074;&#1072;&#1085;&#1080;&#1081; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110; &#1108; &#1092;&#1091;&#1085;&#1082;&#1094;&#1110;&#1086;&#1085;&#1072;&#1083;&#1100;&#1085;&#1080;&#1084;, &#1072; &#1079;&#1072;&#1087;&#1080;&#1090; &#1091;&#1074;&#1110;&#1085;&#1095;&#1072;&#1074;&#1089;&#1103; &#1091;&#1089;&#1087;&#1110;&#1093;&#1086;&#1084;, &#1085;&#1072;&#1096; &#1089;&#1082;&#1088;&#1080;&#1087;&#1090; &#1087;&#1086;&#1082;&#1072;&#1078;&#1077; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1080;&#1081; &#1074;&#1084;&#1110;&#1089;&#1090;.&nbsp;\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor8\">\u003C/a>&#1057;&#1090;&#1074;&#1086;&#1088;&#1102;&#1108;&#1084;&#1086; &#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1077;&#1088; &#1085;&#1072; PHP: &#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>&#1065;&#1077; &#1088;&#1072;&#1079; &#1091;&#1103;&#1074;&#1080;&#1084;&#1086; &#1089;&#1086;&#1073;&#1110; &#1089;&#1072;&#1081;&#1090; e-commerce &#1079;&#1110; &#1089;&#1087;&#1080;&#1089;&#1082;&#1086;&#1084; &#1090;&#1086;&#1074;&#1072;&#1088;&#1110;&#1074;, &#1103;&#1082;&#1110; &#1084;&#1080; &#1093;&#1086;&#1095;&#1077;&#1084;&#1086; &#1074;&#1080;&#1090;&#1103;&#1075;&#1090;&#1080; &#1079;&#1072; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1075;&#1086;&#1102; PHP, &#1074;&#1078;&#1077; &#1085;&#1072; &#1073;&#1110;&#1083;&#1100;&#1096; &#1089;&#1082;&#1083;&#1072;&#1076;&#1085;&#1086;&#1084;&#1091; &#1088;&#1110;&#1074;&#1085;&#1110;. &#1054;&#1089;&#1100; &#1085;&#1072;&#1073;&#1110;&#1088; &#1076;&#1110;&#1081; &#1074;&#1110;&#1076; Dexodata.\u003C/p>\n\u003Cp>&#1057;&#1090;&#1072;&#1088;&#1090;&#1091;&#1081;&#1090;&#1077; &#1079; &#1079;&#1072;&#1074;&#1072;&#1085;&#1090;&#1072;&#1078;&#1077;&#1085;&#1085;&#1103; &#1074;&#1089;&#1100;&#1086;&#1075;&#1086; HTML-&#1082;&#1086;&#1076;&#1091; &#1079;&#1072; &#1088;&#1072;&#1093;&#1091;&#1085;&#1086;&#1082; &#1084;&#1086;&#1078;&#1083;&#1080;&#1074;&#1086;&#1089;&#1090;&#1077;&#1081; PHP &#1090;&#1072;&nbsp;\u003Cspan style=\"font-family: monospace; background-color: #b4d7ff;\">cURL\u003C/span>:\u003C/p>\n\u003Cp>\u003Ccode>// initialize the cURL request&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$curl = curl_init();&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// set the URL to reach with a GET HTTP request&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_URL, \"https://scrapeme.live/shop/\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// get the data returned by the cURL request as a string&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// make the cURL request follow eventual redirects,&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// and reach the final page of interest&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// execute the cURL request and&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// get the HTML of the page as a string&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$html = curl_exec($curl);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// release the cURL resources&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_close($curl);\u003C/code>\u003C/p>\n\u003Cp>&#1058;&#1077;&#1087;&#1077;&#1088; &#1084;&#1072;&#1090;&#1077;&#1088;&#1110;&#1072;&#1083;, &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1080;&#1081; &#1079; HTML, &#1079;&#1085;&#1072;&#1093;&#1086;&#1076;&#1080;&#1090;&#1100;&#1089;&#1103; &#1074; &#1085;&#1072;&#1096;&#1086;&#1084;&#1091; &#1088;&#1086;&#1079;&#1087;&#1086;&#1088;&#1103;&#1076;&#1078;&#1077;&#1085;&#1085;&#1110; &#1091; &#1074;&#1080;&#1075;&#1083;&#1103;&#1076;&#1110; &#1079;&#1084;&#1110;&#1085;&#1085;&#1086;&#1111; \u003Ccode>$html\u003C/code>. &#1053;&#1072;&#1089;&#1090;&#1091;&#1087;&#1085;&#1080;&#1081; &#1077;&#1090;&#1072;&#1087; &mdash; &#1079;&#1072;&#1074;&#1072;&#1085;&#1090;&#1072;&#1078;&#1080;&#1090;&#1080; \u003Ccode>$html\u003C/code> &#1074; \u003Ccode>HtmlDomParser \u003C/code>&#1079; &#1092;&#1091;&#1085;&#1082;&#1094;&#1110;&#1108;&#1102; \u003Ccode>str_get_html()\u003C/code>:\u003C/p>\n\u003Cp>\u003Ccode>require_once __DIR__ . \"../../vendor/autoload.php\";&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>use voku\\helper\\HtmlDomParser;&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$curl = curl_init();&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_URL, \"https://scrapeme.live/shop/\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$html = curl_exec($curl);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_close($curl);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// initialize HtmlDomParser&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$htmlDomParser = HtmlDomParser::str_get_html($html);\u003C/code>\u003C/p>\n\u003Cp>&#1058;&#1077;&#1087;&#1077;&#1088; &#1084;&#1086;&#1078;&#1085;&#1072; &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1091;&#1074;&#1072;&#1090;&#1080; \u003Ccode>HtmlDomParser \u003C/code>&#1076;&#1083;&#1103; &#1088;&#1086;&#1073;&#1086;&#1090;&#1080; &#1079; DOM &#1076;&#1083;&#1103; &#1110;&#1085;&#1110;&#1094;&#1110;&#1102;&#1074;&#1072;&#1085;&#1085;&#1103; &#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1110;&#1085;&#1075;&#1091;. &#1065;&#1086;&#1073; &#1094;&#1077; &#1079;&#1088;&#1086;&#1073;&#1080;&#1090;&#1080;, &laquo;&#1074;&#1080;&#1089;&#1084;&#1080;&#1082;&#1091;&#1108;&#1084;&#1086;&raquo; &#1087;&#1086;&#1074;&#1085;&#1080;&#1081; &#1089;&#1087;&#1080;&#1089;&#1086;&#1082; &#1091;&#1089;&#1110;&#1093; &#1087;&#1086;&#1089;&#1080;&#1083;&#1072;&#1085;&#1100;, &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1080;&#1093; &#1079; &#1087;&#1072;&#1075;&#1110;&#1085;&#1072;&#1094;&#1110;&#1108;&#1102;. &#1062;&#1077; &#1076;&#1072;&#1089;&#1090;&#1100; &#1085;&#1072;&#1084; &#1084;&#1086;&#1078;&#1083;&#1080;&#1074;&#1110;&#1089;&#1090;&#1100; &#1087;&#1088;&#1086;&#1089;&#1082;&#1072;&#1085;&#1091;&#1074;&#1072;&#1090;&#1080; &#1074;&#1077;&#1089;&#1100; &#1089;&#1072;&#1081;&#1090; &#1084;&#1072;&#1075;&#1072;&#1079;&#1080;&#1085;&#1091;. &#1065;&#1077;&#1083;&#1082;&#1085;&#1110;&#1090;&#1100; &#1087;&#1088;&#1072;&#1074;&#1086;&#1102; &#1082;&#1085;&#1086;&#1087;&#1082;&#1086;&#1102; &#1084;&#1080;&#1096;&#1110; &#1085;&#1072; &#1082;&#1086;&#1084;&#1087;&#1086;&#1085;&#1077;&#1085;&#1090; HTML, &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1080;&#1081; &#1079; &#1087;&#1072;&#1075;&#1110;&#1085;&#1072;&#1094;&#1110;&#1108;&#1102;, &#1110; &#1074;&#1080;&#1073;&#1077;&#1088;&#1110;&#1090;&#1100; &laquo;Inspect&raquo;. &#1055;&#1110;&#1089;&#1083;&#1103; &#1094;&#1100;&#1086;&#1075;&#1086; DevTools &#1087;&#1086;&#1082;&#1072;&#1078;&#1091;&#1090;&#1100; &#1085;&#1072;&#1084; &#1077;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;, &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1080;&#1081; &#1079; DOM.\u003C/p>\n\u003Cp style=\"text-align: center;\">\u003Cimg src=\"https://blog.dexodata.com/storage/uploads/images/129/15-3-geo-targeted-proxies-php-and-data-collection-1032x491-9e8bc641-6481-435d-ba86-a72096270302.png\" alt=\"&#1071;&#1082; &#1079;&#1073;&#1080;&#1088;&#1072;&#1090;&#1080; &#1076;&#1072;&#1085;&#1110; &#1074; &#1052;&#1077;&#1088;&#1077;&#1078;&#1110; &#1079; PHP &#1090;&#1072; &#1086;&#1088;&#1077;&#1085;&#1076;&#1086;&#1102; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110;\" width=\"1032\" height=\"491\">\u003C/p>\n\u003Cp>&#1042; &#1088;&#1072;&#1084;&#1082;&#1072;&#1093; &#1085;&#1072;&#1096;&#1086;&#1075;&#1086; &#1089;&#1094;&#1077;&#1085;&#1072;&#1088;&#1110;&#1102; &#1084;&#1086;&#1078;&#1085;&#1072; &#1086;&#1095;&#1110;&#1082;&#1091;&#1074;&#1072;&#1090;&#1080;, &#1097;&#1086; .\u003Ccode>page-numbers\u003C/code>, &#1074; &#1103;&#1082;&#1086;&#1089;&#1090;&#1110; CSS-&#1082;&#1083;&#1072;&#1089;&#1091;, &#1074;&#1082;&#1072;&#1079;&#1091;&#1102;&#1090;&#1100; &#1085;&#1072; &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1080;&#1081; &#1079; &#1087;&#1072;&#1075;&#1110;&#1085;&#1072;&#1094;&#1110;&#1108;&#1102; HTML. &#1054;&#1076;&#1085;&#1072;&#1082; CSS-&#1082;&#1083;&#1072;&#1089; &#1085;&#1077; &#1086;&#1073;&#1086;&#1074;'&#1103;&#1079;&#1082;&#1086;&#1074;&#1086; &#1073;&#1091;&#1076;&#1077; &#1086;&#1076;&#1085;&#1086;&#1079;&#1085;&#1072;&#1095;&#1085;&#1086; &#1110;&#1076;&#1077;&#1085;&#1090;&#1080;&#1092;&#1110;&#1082;&#1091;&#1074;&#1072;&#1090;&#1080; &#1087;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1080;&#1081; &#1085;&#1072;&#1084; &#1082;&#1086;&#1084;&#1087;&#1086;&#1085;&#1077;&#1085;&#1090;. &#1054;&#1076;&#1088;&#1072;&#1079;&#1091; &#1082;&#1110;&#1083;&#1100;&#1082;&#1072; &#1077;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;&#1110;&#1074; &#1084;&#1086;&#1078;&#1091;&#1090;&#1100; &#1073;&#1091;&#1090;&#1080; &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1110; &#1079; &#1086;&#1076;&#1085;&#1080;&#1084; &#1110; &#1090;&#1080;&#1084; &#1078;&#1077; &#1082;&#1083;&#1072;&#1089;&#1086;&#1084;.\u003C/p>\n\u003Cp>&#1058;&#1086;&#1084;&#1091;, &#1103;&#1082;&#1097;&#1086; &#1108; &#1085;&#1072;&#1084;&#1110;&#1088; &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1091;&#1074;&#1072;&#1090;&#1080; &#1089;&#1077;&#1083;&#1077;&#1082;&#1090;&#1086;&#1088; CSS &#1076;&#1083;&#1103; &laquo;&#1079;&#1072;&#1093;&#1086;&#1087;&#1083;&#1077;&#1085;&#1085;&#1103;&raquo; &#1082;&#1086;&#1084;&#1087;&#1086;&#1085;&#1077;&#1085;&#1090;&#1110;&#1074; &#1091; DOM, &#1076;&#1086;&#1074;&#1077;&#1076;&#1077;&#1090;&#1100;&#1089;&#1103; &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1091;&#1074;&#1072;&#1090;&#1080; &#1082;&#1083;&#1072;&#1089; CSS &#1091; &#1087;&#1086;&#1108;&#1076;&#1085;&#1072;&#1085;&#1085;&#1110; &#1079; &#1110;&#1085;&#1096;&#1080;&#1084;&#1080; &#1089;&#1077;&#1083;&#1077;&#1082;&#1090;&#1086;&#1088;&#1072;&#1084;&#1080;. &#1047;&#1086;&#1082;&#1088;&#1077;&#1084;&#1072;, &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095;&#1110; &#1084;&#1086;&#1078;&#1091;&#1090;&#1100; &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1091;&#1074;&#1072;&#1090;&#1080; &#1087;&#1086;&#1084;&#1110;&#1095;&#1085;&#1080;&#1082; \u003Ccode>HtmlDomParser \u003C/code>&#1079; \u003Ccode>.page-numbers\u003C/code> &#1074; &#1103;&#1082;&#1086;&#1089;&#1090;&#1110; &#1089;&#1077;&#1083;&#1077;&#1082;&#1090;&#1086;&#1088;&#1072; CSS, &#1097;&#1086;&#1073; &#1074;&#1080;&#1073;&#1088;&#1072;&#1090;&#1080; &#1074;&#1089;&#1110; HTML-&#1082;&#1086;&#1084;&#1087;&#1086;&#1085;&#1077;&#1085;&#1090;&#1080;, &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1110; &#1079; &#1085;&#1091;&#1084;&#1077;&#1088;&#1072;&#1094;&#1110;&#1108;&#1102; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1086;&#1082;. &#1055;&#1088;&#1086;&#1081;&#1076;&#1077;&#1084;&#1086;&#1089;&#1103; &#1087;&#1086; &#1089;&#1072;&#1081;&#1090;&#1091;, &#1097;&#1086;&#1073; &#1086;&#1090;&#1088;&#1080;&#1084;&#1072;&#1090;&#1080; &#1074;&#1089;&#1110; &#1085;&#1077;&#1086;&#1073;&#1093;&#1110;&#1076;&#1085;&#1110; URL-&#1072;&#1076;&#1088;&#1077;&#1089;&#1080; &#1079; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1072; \u003Ccode>href\u003C/code>.\u003C/p>\n\u003Cp>&#1044;&#1080;&#1074;&#1110;&#1090;&#1100;&#1089;&#1103;:\u003C/p>\n\u003Cp>\u003Ccode>// retrieve the HTML pagination elements with&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// the \".page-numbers a\" CSS selector&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$paginationElements = $htmlDomParser-&gt;find(\".page-numbers a\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$paginationLinks = [];&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>foreach ($paginationElements as $paginationElement) {&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>// populate the paginationLinks set with the URL&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>// extracted from the href attribute of the HTML pagination element&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$paginationLink = $paginationElement-&gt;getAttribute(\"href\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>// avoid duplicates in the list of URLs&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>if (!in_array($paginationLink, $paginationLinks)) {&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$paginationLinks[] = $paginationLink;&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>} &nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}\u003C/code>\u003C/p>\n\u003Cp>&nbsp;\u003C/p>\n\u003Cp>\u003Ccode>// print the paginationLinks array&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>print_r($paginationLinks);\u003C/code>\u003C/p>\n\u003Cp>&#1047;&#1074;&#1077;&#1088;&#1085;&#1110;&#1090;&#1100; &#1091;&#1074;&#1072;&#1075;&#1091;, &#1097;&#1086; \u003Ca href=\"https://github.com/voku/simple_html_dom/blob/master/README_API.md#findstring-selector-intnull-idx-simplehtmldominterfacesimplehtmldominterfacesimplehtmldomnodeinterfacesimplehtmldominterface\" target=\"_blank\" rel=\"noopener\">f\u003Ccode>ind()\u003C/code> &#1076;&#1086;&#1079;&#1074;&#1086;&#1083;&#1103;&#1108; &#1091;&#1093;&#1086;&#1087;&#1083;&#1102;&#1074;&#1072;&#1090;&#1080; &#1082;&#1086;&#1084;&#1087;&#1086;&#1085;&#1077;&#1085;&#1090;&#1080; DOM\u003C/a> &#1085;&#1072; &#1073;&#1072;&#1079;&#1110; CSS &#1089;&#1077;&#1083;&#1077;&#1082;&#1090;&#1086;&#1088;&#1072;. &#1042; &#1094;&#1100;&#1086;&#1084;&#1091; &#1075;&#1110;&#1087;&#1086;&#1090;&#1077;&#1090;&#1080;&#1095;&#1085;&#1086;&#1084;&#1091; &#1089;&#1094;&#1077;&#1085;&#1072;&#1088;&#1110;&#1111; &#1074;&#1110;&#1076; Dexodata &#1082;&#1086;&#1084;&#1087;&#1086;&#1085;&#1077;&#1085;&#1090;&#1080;, &#1087;&#1086;&#1074;'&#1103;&#1079;&#1072;&#1085;&#1110; &#1079; &#1087;&#1072;&#1075;&#1110;&#1085;&#1072;&#1094;&#1110;&#1108;&#1102;, &#1087;&#1088;&#1077;&#1076;&#1089;&#1090;&#1072;&#1074;&#1083;&#1077;&#1085;&#1110; &#1087;&#1086; &#1076;&#1074;&#1072; &#1088;&#1072;&#1079;&#1080; &#1085;&#1072; &#1082;&#1086;&#1078;&#1085;&#1110;&#1081; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1094;&#1110;. &#1055;&#1086;&#1090;&#1088;&#1110;&#1073;&#1085;&#1086; &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1091;&#1074;&#1072;&#1090;&#1080; &#1089;&#1087;&#1077;&#1094;&#1110;&#1072;&#1083;&#1100;&#1085;&#1080;&#1081; &#1090;&#1088;&#1102;&#1082; &#1076;&#1083;&#1103; &#1074;&#1080;&#1088;&#1110;&#1096;&#1077;&#1085;&#1085;&#1103; &#1087;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084;&#1080; &#1076;&#1091;&#1073;&#1083;&#1110;&#1082;&#1072;&#1094;&#1110;&#1111; &#1082;&#1086;&#1084;&#1087;&#1086;&#1085;&#1077;&#1085;&#1090;&#1110;&#1074; &#1091; &#1089;&#1074;&#1110;&#1090;&#1083;&#1110; &#1084;&#1072;&#1089;&#1080;&#1074;&#1091; \u003Ccode>$paginationLinks\u003C/code>.\u003C/p>\n\u003Cp>&#1054;&#1089;&#1100; &#1097;&#1086; &#1084;&#1080; &#1087;&#1086;&#1073;&#1072;&#1095;&#1080;&#1084;&#1086;, &#1103;&#1082;&#1097;&#1086; &#1089;&#1087;&#1088;&#1086;&#1073;&#1091;&#1108;&#1084;&#1086; &#1079;&#1072;&#1087;&#1091;&#1089;&#1090;&#1080;&#1090;&#1080; &#1085;&#1072;&#1096; &#1089;&#1082;&#1088;&#1080;&#1087;&#1090;:\u003C/p>\n\u003Cp>\u003Ccode>Array (&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>[0] =&gt; https://scrapeme.live/shop/page/2/&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>[1] =&gt; https://scrapeme.live/shop/page/3/&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>[2] =&gt; https://scrapeme.live/shop/page/4/&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>[3] =&gt; https://scrapeme.live/shop/page/46/&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>[4] =&gt; https://scrapeme.live/shop/page/47/&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>[5] =&gt; https://scrapeme.live/shop/page/50/&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>)\u003C/code>\u003C/p>\n\u003Cp>&#1047;&#1074;&#1077;&#1088;&#1085;&#1110;&#1090;&#1100; &#1091;&#1074;&#1072;&#1075;&#1091;, &#1097;&#1086; &#1074;&#1089;&#1110; &#1072;&#1076;&#1088;&#1077;&#1089;&#1080; &#1084;&#1072;&#1102;&#1090;&#1100; &#1086;&#1076;&#1085;&#1072;&#1082;&#1086;&#1074;&#1091; &#1089;&#1090;&#1088;&#1091;&#1082;&#1090;&#1091;&#1088;&#1091;. &#1042;&#1089;&#1110; &#1074;&#1086;&#1085;&#1080; &#1074;&#1110;&#1076;&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1110; &#1082;&#1110;&#1085;&#1094;&#1077;&#1074;&#1086;&#1102; &#1094;&#1080;&#1092;&#1088;&#1086;&#1102;, &#1097;&#1086; &#1074;&#1110;&#1076;&#1087;&#1086;&#1074;&#1110;&#1076;&#1072;&#1108; &#1079;&#1072; &#1087;&#1072;&#1075;&#1110;&#1085;&#1072;&#1094;&#1110;&#1102;. &#1054;&#1089;&#1100; &#1103;&#1082; &#1111;&#1111; &#1074;&#1080;&#1090;&#1103;&#1075;&#1090;&#1080;:\u003C/p>\n\u003Cp>\u003Ccode>// remove all non-numeric characters in the last element of&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// the $paginationLinks array to retrieve the highest pagination number&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$highestPaginationNumber = preg_replace(\"/\\D/\", \"\", end($paginationLinks));\u003C/code>\u003C/p>\n\u003Cp>&#1055;&#1088;&#1080;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1086;, &#1087;&#1086;&#1082;&#1072;&#1079;&#1085;&#1080;&#1082; \u003Ccode>$highestPaginationNumber\u003C/code> &#1073;&#1091;&#1076;&#1077; &laquo;50&raquo;.\u003C/p>\n\u003Cp>&#1040; &#1090;&#1077;&#1087;&#1077;&#1088; &#1079;&#1073;&#1077;&#1088;&#1077;&#1084;&#1086; &#1076;&#1072;&#1085;&#1110; &#1087;&#1088;&#1086; &#1082;&#1086;&#1078;&#1077;&#1085; &#1086;&#1082;&#1088;&#1077;&#1084;&#1080;&#1081; &#1087;&#1088;&#1086;&#1076;&#1091;&#1082;&#1090;. &#1056;&#1086;&#1073;&#1080;&#1084;&#1086; &#1087;&#1088;&#1072;&#1074;&#1080;&#1081; &#1082;&#1083;&#1110;&#1082; &#1087;&#1086; &#1077;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;&#1091; &#1110; &#1072;&#1082;&#1090;&#1080;&#1074;&#1091;&#1108;&#1084;&#1086; DevTools, &#1072; &#1087;&#1086;&#1090;&#1110;&#1084; &#1078;&#1084;&#1077;&#1084;&#1086; &#1085;&#1072; &laquo;Inspect&raquo;. &#1052;&#1086;&#1078;&#1085;&#1072; &#1086;&#1095;&#1110;&#1082;&#1091;&#1074;&#1072;&#1090;&#1080;, &#1097;&#1086; &#1090;&#1086;&#1074;&#1072;&#1088; &#1073;&#1091;&#1076;&#1077; &laquo;&#1079;&#1088;&#1086;&#1073;&#1083;&#1077;&#1085;&#1080;&#1081;&raquo; &#1079; HTML-&#1077;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;&#1072; \u003Ccode>li.product\u003C/code>, &#1097;&#1086; &#1074;&#1082;&#1083;&#1102;&#1095;&#1072;&#1108; URL, &#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;&#1085;&#1103;, &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1090;&#1072; &#1094;&#1110;&#1085;&#1085;&#1080;&#1082;. &#1058;&#1072;&#1082;&#1072; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1103; &#1074;&#1080;&#1093;&#1086;&#1076;&#1080;&#1090;&#1100; &#1079; &laquo;\u003Ccode>a\u003C/code>&raquo;, &laquo;\u003Ccode>mg\u003C/code>&raquo;, &laquo;\u003Ccode>h2\u003C/code>&raquo; &#1090;&#1072; &laquo;\u003Ccode>span\u003C/code>&raquo; &#1077;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090;&#1110;&#1074; HTML.\u003C/p>\n\u003Cp>&#1047;&#1072;&#1093;&#1086;&#1087;&#1083;&#1102;&#1108;&#1084;&#1086; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1102; &#1095;&#1077;&#1088;&#1077;&#1079; \u003Ccode>HtmlDomParser\u003C/code>:\u003C/p>\n\u003Cp>\u003Ccode>$productDataLit = array();&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// retrieve the list of products on the page&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$productElements = $htmlDomParser-&gt;find(\"li.product\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>foreach ($productElements as $productElement) {&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>// extract the product data&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$url = $productElement-&gt;findOne(\"a\")-&gt;getAttribute(\"href\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$image = $productElement-&gt;findOne(\"img\")-&gt;getAttribute(\"src\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$name = $productElement-&gt;findOne(\"h2\")-&gt;text;&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$price = $productElement-&gt;findOne(\".price span\")-&gt;text;&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>// transform the product data into an associative array&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$productData = array(&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>\"url\" =&gt; $url,&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>\"image\" =&gt; $image,&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>\"name\" =&gt; $name,&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>\"price\" =&gt; $price&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$productDataList[] = $productData;&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}\u003C/code>\u003C/p>\n\u003Cp>&#1053;&#1072; &#1094;&#1110;&#1081; &#1089;&#1090;&#1072;&#1076;&#1110;&#1111; &#1085;&#1072;&#1096;&#1072; &#1083;&#1086;&#1075;&#1110;&#1082;&#1072; &#1079;&#1076;&#1072;&#1090;&#1085;&#1072; &#1079;&#1110;&#1073;&#1088;&#1072;&#1090;&#1080; &#1074;&#1089;&#1110; &#1092;&#1088;&#1072;&#1075;&#1084;&#1077;&#1085;&#1090;&#1080; &#1110;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1110;&#1111; &#1087;&#1088;&#1086; &#1077;&#1083;&#1077;&#1084;&#1077;&#1085;&#1090; &#1079; &#1082;&#1086;&#1078;&#1085;&#1086;&#1111; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1080; &#1110; &#1074; &#1087;&#1086;&#1076;&#1072;&#1083;&#1100;&#1096;&#1086;&#1084;&#1091; &#1079;&#1073;&#1077;&#1088;&#1077;&#1075;&#1090;&#1080; &#1111;&#1111; &#1103;&#1082; &#1084;&#1072;&#1089;&#1080;&#1074; \u003Ccode>$productDataList\u003C/code>. &#1047;&#1072;&#1089;&#1090;&#1086;&#1089;&#1091;&#1108;&#1084;&#1086; &#1111;&#1111; &#1076;&#1086; &#1074;&#1089;&#1110;&#1093; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1086;&#1082;.\u003C/p>\n\u003Cp>\u003Ccode>// iterate over all \"/shop/page/X\" pages and retrieve all product data&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>for ($paginationNumber = 1; $paginationNumber &lt;= $highestPaginationNumber; $paginationNumber++) {&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$curl = curl_init();&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>curl_setopt($curl, CURLOPT_URL, \"https://scrapeme.live/shop/page/$paginationNumber/\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$pageHtml = curl_exec($curl);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>curl_close($curl);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$paginationHtmlDomParser = HtmlDomParser::str_get_html($pageHtml);&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>// scraping logic...&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}\u003C/code>\u003C/p>\n\u003Cp>&#1052;&#1110;&#1089;&#1110;&#1103; &#1074;&#1080;&#1082;&#1086;&#1085;&#1072;&#1085;&#1072;.\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor9\">\u003C/a>&#1055;&#1110;&#1076;&#1089;&#1091;&#1084;&#1082;&#1086;&#1074;&#1110; &#1079;&#1072;&#1091;&#1074;&#1072;&#1078;&#1077;&#1085;&#1085;&#1103;\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>&#1047;&#1072;&#1074;&#1077;&#1088;&#1096;&#1091;&#1102;&#1095;&#1080; &#1094;&#1077;&#1081; &#1086;&#1075;&#1083;&#1103;&#1076;, &#1085;&#1072;&#1074;&#1077;&#1076;&#1077;&#1084;&#1086; &#1082;&#1110;&#1083;&#1100;&#1082;&#1072; &#1087;&#1110;&#1076;&#1089;&#1091;&#1084;&#1082;&#1086;&#1074;&#1080;&#1093; &#1079;&#1072;&#1091;&#1074;&#1072;&#1078;&#1077;&#1085;&#1100;, &#1074;&#1072;&#1078;&#1083;&#1080;&#1074;&#1080;&#1093; &#1087;&#1088;&#1080; &#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1110;&#1085;&#1075;&#1091;. &#1055;&#1086;&#1089;&#1090;&#1072;&#1088;&#1072;&#1081;&#1090;&#1077;&#1089;&#1103; &#1085;&#1077; &#1073;&#1091;&#1090;&#1080; &#1087;&#1086;&#1084;&#1110;&#1095;&#1077;&#1085;&#1080;&#1084;&#1080; &#1087;&#1088;&#1080; &#1093;&#1072;&#1088;&#1074;&#1077;&#1089;&#1090;&#1080;&#1085;&#1075;&#1091; &#1076;&#1072;&#1085;&#1080;&#1093;, &#1076;&#1083;&#1103; &#1094;&#1100;&#1086;&#1075;&#1086; &#1074;&#1080;&#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1086;&#1074;&#1091;&#1081;&#1090;&#1077; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110; (&#1110;&#1085;&#1072;&#1082;&#1096;&#1077; IP &#1084;&#1086;&#1078;&#1077; &#1087;&#1086;&#1090;&#1088;&#1072;&#1087;&#1080;&#1090;&#1080; &#1087;&#1110;&#1076; &#1086;&#1073;&#1084;&#1077;&#1078;&#1077;&#1085;&#1085;&#1103;). &#1054;&#1089;&#1100; &#1097;&#1077; &#1086;&#1076;&#1080;&#1085; &#1088;&#1077;&#1084;&#1072;&#1081;&#1085;&#1076;&#1077;&#1088; &#1087;&#1088;&#1086; &#1090;&#1077;, &#1103;&#1082; &#1094;&#1077; &#1084;&#1086;&#1078;&#1085;&#1072; &#1079;&#1088;&#1086;&#1073;&#1080;&#1090;&#1080; &#1087;&#1088;&#1080; &#1088;&#1086;&#1073;&#1086;&#1090;&#1110; &#1079; \u003Ccode>cURL\u003C/code>.\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_PROXY, \"&lt;PROXY_URL&gt;\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_PROXYPORT, \"&lt;PROXY_PORT&gt;\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_PROXYTYPE, \"&lt;PROXY_TYPE&gt;\");\u003C/code>\u003C/p>\n\u003Cp>1. &#1044;&#1086;&#1076;&#1072;&#1090;&#1082;&#1086;&#1074;&#1080;&#1081; &#1088;&#1110;&#1074;&#1077;&#1085;&#1100; &#1079;&#1072;&#1093;&#1080;&#1089;&#1090;&#1091; &#1084;&#1086;&#1078;&#1077; &#1090;&#1072;&#1082;&#1086;&#1078; &#1076;&#1072;&#1090;&#1080; HTTP-&#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1094;&#1100;&#1082;&#1086;&#1075;&#1086; &#1072;&#1075;&#1077;&#1085;&#1090;&#1072;. &#1047;&#1072; &#1074;&#1080;&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1085;&#1103;&#1084; \u003Ccode>cURL \u003C/code>&#1079;&#1072;&#1074;&#1078;&#1076;&#1080; &#1073;&#1091;&#1076;&#1077; &#1074;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1083;&#1102;&#1074;&#1072;&#1090;&#1080; &#1097;&#1086;&#1089;&#1100; &#1085;&#1072; &#1079;&#1088;&#1072;&#1079;&#1086;&#1082; \u003Ccode>curl/XX.YY.ZZ\u003C/code>. &#1030;&#1076;&#1077;&#1085;&#1090;&#1080;&#1092;&#1110;&#1082;&#1091;&#1074;&#1072;&#1090;&#1080; &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095;&#1072; &#1079; &#1090;&#1072;&#1082;&#1080;&#1084; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1082;&#1086;&#1084; &#1090;&#1072; &#1079;&#1088;&#1086;&#1079;&#1091;&#1084;&#1110;&#1090;&#1080;, &#1097;&#1086; &#1081;&#1076;&#1077;&#1090;&#1100;&#1089;&#1103; &#1087;&#1088;&#1086; &#1089;&#1082;&#1088;&#1077;&#1081;&#1087;&#1110;&#1085;&#1075;, &#1085;&#1077; &#1089;&#1082;&#1083;&#1072;&#1076;&#1077; &#1074;&#1077;&#1083;&#1080;&#1082;&#1086;&#1111; &#1087;&#1088;&#1072;&#1094;&#1110;. &#1047;&#1072;&#1084;&#1110;&#1089;&#1090;&#1100; &#1094;&#1100;&#1086;&#1075;&#1086; &#1089;&#1087;&#1088;&#1086;&#1073;&#1091;&#1081;&#1090;&#1077; &#1090;&#1091;&#1090; &laquo;&#1087;&#1086;&#1075;&#1088;&#1072;&#1090;&#1080;&raquo; &#1079; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1082;&#1086;&#1084;.\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_USERAGENT, \"&lt;USER_AGENT_STRING&gt;\");\u003C/code>\u003C/p>\n\u003Cp>&#1042; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1110; &#1087;&#1086;&#1074;&#1080;&#1085;&#1085;&#1086; &#1074;&#1080;&#1081;&#1090;&#1080; &#1085;&#1077;&#1097;&#1086; &#1085;&#1072; &#1079;&#1088;&#1072;&#1079;&#1086;&#1082; &#1094;&#1100;&#1086;&#1075;&#1086; &#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;&#1091; &#1079; &#1110;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090;&#1091;:\u003C/p>\n\u003Cp>\u003Ccode>curl_setopt($curl, CURLOPT_USERAGENT, \"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6\")\u003C/code>\u003C/p>\n\u003Cp>2. &#1065;&#1077; &#1086;&#1076;&#1085;&#1072; &#1088;&#1077;&#1084;&#1072;&#1088;&#1082;&#1072; &#1074;&#1110;&#1076; Dexodata &#1089;&#1090;&#1086;&#1089;&#1091;&#1108;&#1090;&#1100;&#1089;&#1103; &#1076;&#1080;&#1085;&#1072;&#1084;&#1110;&#1095;&#1085;&#1086;&#1075;&#1086; &#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090;&#1091;. &#1052;&#1080; &#1074;&#1078;&#1077; &#1087;&#1110;&#1076;&#1082;&#1088;&#1077;&#1089;&#1083;&#1102;&#1074;&#1072;&#1083;&#1080;, &#1097;&#1086; &#1079;&#1074;&#1080;&#1095;&#1072;&#1081;&#1085;&#1080;&#1081; &#1079;&#1072;&#1087;&#1080;&#1090; \u003Ccode>GET\u003C/code> &#1079;&nbsp;\u003Cspan style=\"font-family: monospace; background-color: #b4d7ff;\">cURL \u003C/span>&#1074;&#1072;&#1084; &#1079; &#1085;&#1080;&#1084; &#1085;&#1077; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1078;&#1077;, &#1079;&#1085;&#1072;&#1076;&#1086;&#1073;&#1083;&#1103;&#1090;&#1100;&#1089;&#1103; &#1076;&#1086;&#1076;&#1072;&#1090;&#1082;&#1086;&#1074;&#1110; &#1084;&#1077;&#1090;&#1086;&#1076;&#1080;. &#1055;&#1086;&#1074;&#1077;&#1088;&#1085;&#1110;&#1090;&#1100;&#1089;&#1103; &#1076;&#1086; &#1085;&#1072;&#1096;&#1086;&#1075;&#1086; \u003Ca href=\"https://dexodata.com/ru/blog/kak-ispolzovat-java-dlya-skreipinga-dannyx-v-seti\" target=\"_blank\" rel=\"noopener\">&#1075;&#1072;&#1081;&#1076;&#1091;, &#1087;&#1088;&#1080;&#1089;&#1074;&#1103;&#1095;&#1077;&#1085;&#1086;&#1075;&#1086; JS\u003C/a>, &#1090;&#1072; &#1074;&#1080;&#1074;&#1095;&#1110;&#1090;&#1100; &#1090;&#1077;&#1084;&#1091; headless-&#1073;&#1088;&#1072;&#1091;&#1079;&#1077;&#1088;&#1110;&#1074;. &#1062;&#1077; &#1076;&#1086;&#1087;&#1086;&#1084;&#1086;&#1078;&#1077; &#1089;&#1090;&#1074;&#1086;&#1088;&#1080;&#1090;&#1080; &#1087;&#1072;&#1088;&#1089;&#1077;&#1088;, &#1097;&#1086; &#1074;&#1079;&#1072;&#1108;&#1084;&#1086;&#1076;&#1110;&#1108; &#1079; &#1089;&#1072;&#1081;&#1090;&#1086;&#1084; &#1103;&#1082; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1080;&#1081; &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095; &#1090;&#1072; &#1074;&#1080;&#1090;&#1103;&#1075;&#1091;&#1108; &#1076;&#1080;&#1085;&#1072;&#1084;&#1110;&#1095;&#1085;&#1080;&#1081; &#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090;.&nbsp;\u003C/p>\n\u003Cp>3. &#1053;&#1072;&#1096;&#1077; &#1090;&#1088;&#1077;&#1090;&#1108; &#1079;&#1072;&#1091;&#1074;&#1072;&#1078;&#1077;&#1085;&#1085;&#1103; &#1087;&#1088;&#1080;&#1089;&#1074;&#1103;&#1095;&#1077;&#1085;&#1077; &#1087;&#1072;&#1088;&#1072;&#1083;&#1077;&#1083;&#1100;&#1085;&#1086;&#1084;&#1091; &#1087;&#1072;&#1088;&#1089;&#1080;&#1085;&#1075;&#1091;. &#1052;&#1085;&#1086;&#1075;&#1086;&#1087;&#1086;&#1090;&#1086;&#1095;&#1085;&#1110;&#1089;&#1090;&#1100; &#1091; PHP &mdash; &#1090;&#1077;&#1084;&#1072; &#1089;&#1082;&#1083;&#1072;&#1076;&#1085;&#1072;, &#1072;&#1083;&#1077; &#1087;&#1086;&#1076;&#1077;&#1082;&#1086;&#1083;&#1080; &#1085;&#1077;&#1084;&#1080;&#1085;&#1091;&#1095;&#1072;. &#1054;&#1089;&#1100; &#1074;&#1072;&#1088;&#1110;&#1072;&#1085;&#1090; &#1074;&#1080;&#1088;&#1110;&#1096;&#1077;&#1085;&#1085;&#1103; &#1094;&#1110;&#1108;&#1111; &#1087;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084;&#1080; &#1074;&#1110;&#1076; Dexodata. &#1053;&#1072;&#1096;&#1072; &#1082;&#1086;&#1085;&#1094;&#1077;&#1087;&#1094;&#1110;&#1103; &#1087;&#1086;&#1083;&#1103;&#1075;&#1072;&#1108; &#1074; &#1090;&#1086;&#1084;&#1091;, &#1097;&#1086;&#1073; &#1089;&#1082;&#1088;&#1080;&#1087;&#1090; &#1084;&#1110;&#1075; &#1074;&#1080;&#1082;&#1086;&#1085;&#1091;&#1074;&#1072;&#1090;&#1080;&#1089;&#1103; &#1085;&#1072; &#1082;&#1110;&#1083;&#1100;&#1082;&#1086;&#1093; &#1089;&#1090;&#1086;&#1088;&#1110;&#1085;&#1082;&#1072;&#1093;, &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1086;&#1074;&#1091;&#1102;&#1095;&#1080; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088;&#1080; \u003Ccode>HTTP GET\u003C/code> &#1085;&#1077; &#1076;&#1086; &#1074;&#1089;&#1100;&#1086;&#1075;&#1086; &#1089;&#1072;&#1081;&#1090;&#1091;, &#1072; &#1076;&#1086; &#1081;&#1086;&#1075;&#1086; &#1095;&#1072;&#1089;&#1090;&#1080;&#1085;.&nbsp;\u003C/p>\n\u003Cp>&#1052;&#1086;&#1076;&#1080;&#1092;&#1110;&#1082;&#1091;&#1081;&#1090;&#1077; &#1089;&#1082;&#1088;&#1080;&#1087;&#1090;, &#1097;&#1086;&#1073; &#1074;&#1110;&#1085; &#1085;&#1077; &#1086;&#1093;&#1086;&#1087;&#1083;&#1102;&#1074;&#1072;&#1074; &#1089;&#1072;&#1081;&#1090; &#1094;&#1110;&#1083;&#1082;&#1086;&#1084;, &#1072; &#1079;&#1086;&#1089;&#1077;&#1088;&#1077;&#1076;&#1080;&#1074;&#1089;&#1103; &#1085;&#1072; &#1073;&#1110;&#1083;&#1100;&#1096; &#1076;&#1088;&#1110;&#1073;&#1085;&#1080;&#1093; &#1087;&#1072;&#1088;&#1072;&#1083;&#1077;&#1083;&#1100;&#1085;&#1080;&#1093; &#1092;&#1088;&#1072;&#1075;&#1084;&#1077;&#1085;&#1090;&#1072;&#1093;. &#1054;&#1089;&#1100; &#1103;&#1082; &#1084;&#1086;&#1078;&#1085;&#1072; &#1074;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1080; &#1084;&#1077;&#1078;&#1110; &#1090;&#1072;&#1082;&#1080;&#1093; &laquo;&#1082;&#1091;&#1089;&#1086;&#1095;&#1082;&#1110;&#1074;&raquo;:&nbsp;\u003C/p>\n\u003Cp>\u003Ccode>$from = null;&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>$to = null;&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>if (isset($_GET[\"from\"]) &amp;&amp; is_numeric($_GET[\"from\"])) {&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$from = $_GET[\"from\"];&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>if (isset($_GET[\"to\"]) &amp;&amp; is_numeric($_GET[\"to\"])) {&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>$to = $_GET[\"to\"];&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>}&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>if (is_null($from) || is_null($to) || $from &gt; $to) {&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>die(\"Invalid from and to parameters!\");&nbsp;\u003C/code>\u003C/p>\n\u003Cp>}&nbsp;\u003C/p>\n\u003Cp>\u003Ccode>// scrape only the pagination pages whose number goes&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>// from \"$from\" to \"$to\"&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>for ($paginationNumber = $from; $paginationNumber &lt;= $to; $paginationNumber++) {&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>\u003Cspan style=\"white-space: pre;\"> \u003C/span>// scraping logic...&nbsp;\u003C/code>\u003C/p>\n\u003Cp>}\u003C/p>\n\u003Cp>\u003Ccode>// write the data scraped to a database/file\u003C/code>\u003C/p>\n\u003Cp>&#1058;&#1077;&#1087;&#1077;&#1088; &#1082;&#1086;&#1088;&#1080;&#1089;&#1090;&#1091;&#1074;&#1072;&#1095; &#1084;&#1086;&#1078;&#1077; &#1087;&#1088;&#1086;&#1089;&#1090;&#1072;&#1074;&#1080;&#1090;&#1080; &#1074; &#1073;&#1088;&#1072;&#1091;&#1079;&#1077;&#1088;&#1110; &#1090;&#1072;&#1082;&#1110; &#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;&#1080;, &#1103;&#1082; &#1087;&#1086;&#1089;&#1080;&#1083;&#1072;&#1085;&#1085;&#1103; &#1085;&#1080;&#1078;&#1095;&#1077;, &#1097;&#1086;&#1073; &#1086;&#1073;&#1088;&#1086;&#1073;&#1080;&#1090;&#1080; &#1111;&#1093; &#1086;&#1076;&#1088;&#1072;&#1079;&#1091; &#1082;&#1110;&#1083;&#1100;&#1082;&#1072;. &#1057;&#1082;&#1088;&#1077;&#1081;&#1087;&#1110;&#1085;&#1075; &#1073;&#1091;&#1076;&#1077; &#1074;&#1080;&#1082;&#1086;&#1085;&#1091;&#1074;&#1072;&#1090;&#1080;&#1089;&#1103; &#1087;&#1072;&#1088;&#1072;&#1083;&#1077;&#1083;&#1100;&#1085;&#1086;.\u003C/p>\n\u003Cp>\u003Ccode>https://instance.com/scripts/scrapeme.live/scrape-products.php?from=1&amp;to=5&nbsp;\u003C/code>\u003C/p>\n\u003Cp>\u003Ccode>https://instance.com/scripts/scrapeme.live/scrape-products.php?from=6&amp;to=10&nbsp;\u003C/code>\u003C/p>\n\u003Cp>&#1030; &#1090;&#1072;&#1082; &#1076;&#1072;&#1083;&#1110;.\u003C/p>\n\u003Cp>&#1054;&#1089;&#1100; &#1110; &#1074;&#1089;&#1077;. &#1044;&#1103;&#1082;&#1091;&#1108;&#1084;&#1086; &#1079;&#1072; &#1090;&#1077;, &#1097;&#1086; &#1087;&#1088;&#1086;&#1081;&#1096;&#1083;&#1080; &#1094;&#1077;&#1081; &#1096;&#1083;&#1103;&#1093; &#1079; \u003Ca href=\"https://dexodata.com/ru/blog/kak-dexodata-primenyaet-principy-aml-i-kyc\" target=\"_blank\" rel=\"noopener\">Dexodata, &#1077;&#1090;&#1080;&#1095;&#1085;&#1086;&#1102; &#1077;&#1082;&#1086;&#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1086;&#1102; &#1087;&#1088;&#1086;&#1082;&#1089;&#1110;, &#1097;&#1086; &#1079;&#1072;&#1089;&#1090;&#1086;&#1089;&#1086;&#1074;&#1091;&#1108; &#1089;&#1090;&#1072;&#1085;&#1076;&#1072;&#1088;&#1090;&#1080; KYC &#1090;&#1072; AML\u003C/a> &#1076;&#1083;&#1103; &#1075;&#1072;&#1088;&#1072;&#1085;&#1090;&#1110;&#1111; &#1074;&#1072;&#1096;&#1086;&#1111; &#1073;&#1077;&#1079;&#1087;&#1077;&#1082;&#1080;.\u003C/p>\u003C/body>\u003C/html>\n",[],[],1783936342979]