{"id":6508,"date":"2026-06-19T11:00:44","date_gmt":"2026-06-19T07:30:44","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=6508"},"modified":"2026-06-19T11:00:44","modified_gmt":"2026-06-19T07:30:44","slug":"%d8%b3%d8%a7%d8%ae%d8%aa-%db%8c%da%a9-%d9%88%d8%a8%d8%a7%d8%b3%da%a9%d8%b1%d9%be%d8%b1-%d9%87%d9%85%d8%b2%d9%85%d8%a7%d9%86-%d8%a8%d8%a7-puppeteer%d8%8c-node-js%d8%8c-docker-%d9%88-kubernetes","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d8%b3%d8%a7%d8%ae%d8%aa-%db%8c%da%a9-%d9%88%d8%a8%d8%a7%d8%b3%da%a9%d8%b1%d9%be%d8%b1-%d9%87%d9%85%d8%b2%d9%85%d8%a7%d9%86-%d8%a8%d8%a7-puppeteer%d8%8c-node-js%d8%8c-docker-%d9%88-kubernetes\/","title":{"rendered":"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0648\u0628\u200c\u0627\u0633\u06a9\u0631\u067e\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0627 Puppeteer\u060c Node.js\u060c Docker \u0648 Kubernetes"},"content":{"rendered":"<h2 data-section-id=\"43f4r3\" data-start=\"71\" data-end=\"79\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n<p data-start=\"81\" data-end=\"289\">\u0648\u0628\u200c\u0627\u0633\u06a9\u0631\u067e\u06cc\u0646\u06af (Web Scraping) \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0632 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u200c\u0647\u0627 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062a\u06a9\u0646\u06cc\u06a9 \u0628\u0631\u0627\u06cc \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0642\u06cc\u0645\u062a\u200c\u0647\u0627\u060c \u062a\u062d\u0644\u06cc\u0644 \u0631\u0642\u0628\u0627\u060c \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u062d\u062a\u0648\u0627 \u0648 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f.<\/p>\n<p data-start=\"291\" data-end=\"521\">\u0627\u0645\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062d\u062c\u0645 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u067e\u06cc\u0646\u06af \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062a\u0631\u062a\u06cc\u0628\u06cc (Sequential) \u062f\u06cc\u06af\u0631 \u06a9\u0627\u0631\u0622\u0645\u062f \u0646\u06cc\u0633\u062a. \u062f\u0631 \u0686\u0646\u06cc\u0646 \u0634\u0631\u0627\u06cc\u0637\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u0645\u0632\u0645\u0627\u0646 (Concurrent Processing) \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0633\u0631\u0639\u062a \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f.<\/p>\n<p data-start=\"523\" data-end=\"569\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632:<\/p>\n<ul data-start=\"571\" data-end=\"725\">\n<li data-section-id=\"t42wm9\" data-start=\"571\" data-end=\"611\"><strong data-start=\"573\" data-end=\"586\">Puppeteer<\/strong> \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0631\u0648\u0631\u06af\u0631 Chrome<\/li>\n<li data-section-id=\"9pu81k\" data-start=\"612\" data-end=\"643\"><strong data-start=\"614\" data-end=\"625\">Node.js<\/strong> \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647<\/li>\n<li data-section-id=\"b7fnzx\" data-start=\"644\" data-end=\"673\"><strong data-start=\"646\" data-end=\"656\">Docker<\/strong> \u0628\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0633\u0627\u0632\u06cc<\/li>\n<li data-section-id=\"7terec\" data-start=\"674\" data-end=\"725\"><strong data-start=\"676\" data-end=\"690\">Kubernetes<\/strong> \u0628\u0631\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627<\/li>\n<\/ul>\n<p data-start=\"727\" data-end=\"767\">\u06cc\u06a9 \u0648\u0628\u200c\u0627\u0633\u06a9\u0631\u067e\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0628\u0633\u0627\u0632\u06cc\u062f.<\/p>\n<hr data-start=\"769\" data-end=\"772\" \/>\n<h2 data-section-id=\"9am3ae\" data-start=\"774\" data-end=\"801\">\u0648\u0628\u200c\u0627\u0633\u06a9\u0631\u067e\u06cc\u0646\u06af \u0647\u0645\u0632\u0645\u0627\u0646 \u0686\u06cc\u0633\u062a\u061f<\/h2>\n<p data-start=\"803\" data-end=\"858\">\u062f\u0631 \u062d\u0627\u0644\u062a \u0639\u0627\u062f\u06cc\u060c \u0627\u0633\u06a9\u0631\u067e\u0631 \u0647\u0631 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0628\u0647\u200c\u062a\u0631\u062a\u06cc\u0628 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<ol data-start=\"860\" data-end=\"933\">\n<li data-section-id=\"dyv7b7\" data-start=\"860\" data-end=\"880\">\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0635\u0641\u062d\u0647 \u0627\u0648\u0644<\/li>\n<li data-section-id=\"e81plg\" data-start=\"881\" data-end=\"899\">\u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a<\/li>\n<li data-section-id=\"84epdd\" data-start=\"900\" data-end=\"912\">\u0628\u0633\u062a\u0646 \u0635\u0641\u062d\u0647<\/li>\n<li data-section-id=\"c8awe8\" data-start=\"913\" data-end=\"933\">\u0631\u0641\u062a\u0646 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0628\u0639\u062f\u06cc<\/li>\n<\/ol>\n<p data-start=\"935\" data-end=\"979\">\u0627\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f \u0635\u0641\u062d\u0627\u062a \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0646\u062f \u0627\u0633\u062a.<\/p>\n<p data-start=\"981\" data-end=\"1063\">\u062f\u0631 \u0645\u0642\u0627\u0628\u0644\u060c \u0627\u0633\u06a9\u0631\u067e\u06cc\u0646\u06af \u0647\u0645\u0632\u0645\u0627\u0646 \u0686\u0646\u062f\u06cc\u0646 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<ul data-start=\"1065\" data-end=\"1177\">\n<li data-section-id=\"6xznzw\" data-start=\"1065\" data-end=\"1101\">\u0633\u0631\u0639\u062a \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u0627\u0628\u062f.<\/li>\n<li data-section-id=\"1qihnch\" data-start=\"1102\" data-end=\"1143\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0647\u062a\u0631\u06cc \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f.<\/li>\n<li data-section-id=\"sdkuu6\" data-start=\"1144\" data-end=\"1177\">\u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u06a9\u0627\u0647\u0634 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<hr data-start=\"1179\" data-end=\"1182\" \/>\n<h2 data-section-id=\"1i1mrbk\" data-start=\"1184\" data-end=\"1197\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h2>\n<p data-start=\"1199\" data-end=\"1249\">\u0628\u0631\u0627\u06cc \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n<ul data-start=\"1251\" data-end=\"1363\">\n<li data-section-id=\"1nlt6pm\" data-start=\"1251\" data-end=\"1278\">Node.js \u0646\u0633\u062e\u0647 \u06f1\u06f4 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631<\/li>\n<li data-section-id=\"1o3n4r\" data-start=\"1279\" data-end=\"1284\">npm<\/li>\n<li data-section-id=\"1u6gra4\" data-start=\"1285\" data-end=\"1293\">Docker<\/li>\n<li data-section-id=\"ujw0ao\" data-start=\"1294\" data-end=\"1314\">Kubernetes Cluster<\/li>\n<li data-section-id=\"1r9sa4q\" data-start=\"1315\" data-end=\"1324\">kubectl<\/li>\n<li data-section-id=\"i9a90c\" data-start=\"1325\" data-end=\"1363\">\u0622\u0634\u0646\u0627\u06cc\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0628\u0627 JavaScript \u0648 Node.js<\/li>\n<\/ul>\n<hr data-start=\"1365\" data-end=\"1368\" \/>\n<h2 data-section-id=\"5c62lq\" data-start=\"1370\" data-end=\"1403\">\u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644: \u0627\u06cc\u062c\u0627\u062f \u067e\u0631\u0648\u0698\u0647 Node.js<\/h2>\n<p data-start=\"1405\" data-end=\"1429\">\u06cc\u06a9 \u067e\u0648\u0634\u0647 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">mkdir<\/span> concurrent-scraper\r\n<span class=\"\u037c10\">cd<\/span> concurrent-scraper<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1491\" data-end=\"1520\">\u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">npm<\/span> init <span class=\"\u037c12\">-y<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1547\" data-end=\"1577\">\u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">npm<\/span> install puppeteer express<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1622\" data-end=\"1625\" \/>\n<h2 data-section-id=\"dtghct\" data-start=\"1627\" data-end=\"1665\">\u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645: \u0633\u0627\u062e\u062a \u0627\u0633\u06a9\u0631\u067e\u0631 \u0628\u0627 Puppeteer<\/h2>\n<p data-start=\"1667\" data-end=\"1699\">\u0641\u0627\u06cc\u0644 <code data-start=\"1672\" data-end=\"1684\">scraper.js<\/code> \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">puppeteer<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037c11\">require<\/span>(<span class=\"\u037cz\">'puppeteer'<\/span>);\r\n\r\n<span class=\"\u037cv\">async<\/span> <span class=\"\u037cv\">function<\/span> <span class=\"\u037c11\">scrape<\/span>(<span class=\"\u037c11\">url<\/span>) {\r\n  <span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">browser<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037cv\">await<\/span> <span class=\"\u037c11\">puppeteer<\/span><span class=\"\u037cv\">.<\/span>launch({\r\n    headless: <span class=\"\u037cy\">true<\/span>,\r\n    args: [<span class=\"\u037cz\">'--no-sandbox'<\/span>]\r\n  });\r\n\r\n  <span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">page<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037cv\">await<\/span> <span class=\"\u037c11\">browser<\/span><span class=\"\u037cv\">.<\/span>newPage();\r\n\r\n  <span class=\"\u037cv\">await<\/span> <span class=\"\u037c11\">page<\/span><span class=\"\u037cv\">.<\/span>goto(<span class=\"\u037c11\">url<\/span>, {\r\n    waitUntil: <span class=\"\u037cz\">'networkidle2'<\/span>\r\n  });\r\n\r\n  <span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">title<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037cv\">await<\/span> <span class=\"\u037c11\">page<\/span><span class=\"\u037cv\">.<\/span>title();\r\n\r\n  <span class=\"\u037cv\">await<\/span> <span class=\"\u037c11\">browser<\/span><span class=\"\u037cv\">.<\/span>close();\r\n\r\n  <span class=\"\u037cv\">return<\/span> {\r\n    url,\r\n    title\r\n  };\r\n}\r\n\r\n<span class=\"\u037c11\">module<\/span><span class=\"\u037cv\">.<\/span>exports <span class=\"\u037cv\">=<\/span> <span class=\"\u037c11\">scrape<\/span>;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2116\" data-end=\"2125\">\u0627\u06cc\u0646 \u062a\u0627\u0628\u0639:<\/p>\n<ul data-start=\"2127\" data-end=\"2241\">\n<li data-section-id=\"tozsh1\" data-start=\"2127\" data-end=\"2158\">\u0645\u0631\u0648\u0631\u06af\u0631 Chrome \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"1ncdxhm\" data-start=\"2159\" data-end=\"2188\">\u0635\u0641\u062d\u0647 \u0645\u0648\u0631\u062f\u0646\u0638\u0631 \u0631\u0627 \u0628\u0627\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"2ilc8n\" data-start=\"2189\" data-end=\"2220\">\u0639\u0646\u0648\u0627\u0646 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"njzrc\" data-start=\"2221\" data-end=\"2241\">\u0645\u0631\u0648\u0631\u06af\u0631 \u0631\u0627 \u0645\u06cc\u200c\u0628\u0646\u062f\u062f.<\/li>\n<\/ul>\n<hr data-start=\"2243\" data-end=\"2246\" \/>\n<h2 data-section-id=\"1u81bg7\" data-start=\"2248\" data-end=\"2286\">\u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645: \u0627\u062c\u0631\u0627\u06cc \u0647\u0645\u0632\u0645\u0627\u0646 \u0686\u0646\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a<\/h2>\n<p data-start=\"2288\" data-end=\"2318\">\u0641\u0627\u06cc\u0644 <code data-start=\"2293\" data-end=\"2303\">index.js<\/code> \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">scrape<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037c11\">require<\/span>(<span class=\"\u037cz\">'.\/scraper'<\/span>);\r\n\r\n<span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">urls<\/span> <span class=\"\u037cv\">=<\/span> [\r\n  <span class=\"\u037cz\">'https:\/\/example.com'<\/span>,\r\n  <span class=\"\u037cz\">'https:\/\/github.com'<\/span>,\r\n  <span class=\"\u037cz\">'https:\/\/nodejs.org'<\/span>\r\n];\r\n\r\n<span class=\"\u037cv\">async<\/span> <span class=\"\u037cv\">function<\/span> <span class=\"\u037c11\">run<\/span>() {\r\n  <span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">results<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037cv\">await<\/span> <span class=\"\u037c11\">Promise<\/span><span class=\"\u037cv\">.<\/span>all(\r\n    <span class=\"\u037c11\">urls<\/span><span class=\"\u037cv\">.<\/span>map(<span class=\"\u037c11\">url<\/span> =&gt; <span class=\"\u037c11\">scrape<\/span>(<span class=\"\u037c11\">url<\/span>))\r\n  );\r\n\r\n  <span class=\"\u037c11\">console<\/span><span class=\"\u037cv\">.<\/span>log(<span class=\"\u037c11\">results<\/span>);\r\n}\r\n\r\n<span class=\"\u037c11\">run<\/span>();<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2601\" data-end=\"2686\">\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0632 <code data-start=\"2613\" data-end=\"2628\">Promise.all()<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u062a\u0627 \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0647\u0645\u0632\u0645\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u0634\u0648\u0646\u062f.<\/p>\n<hr data-start=\"2688\" data-end=\"2691\" \/>\n<h2 data-section-id=\"4ohlxe\" data-start=\"2693\" data-end=\"2714\">\u0645\u0632\u0627\u06cc\u0627\u06cc Promise.all<\/h2>\n<p data-start=\"2716\" data-end=\"2755\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code data-start=\"2727\" data-end=\"2742\">Promise.all()<\/code> \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<ul data-start=\"2757\" data-end=\"2860\">\n<li data-section-id=\"18rq9co\" data-start=\"2757\" data-end=\"2797\">\u0647\u0645\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u0645\u0648\u0627\u0632\u06cc \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f.<\/li>\n<li data-section-id=\"1opvlp3\" data-start=\"2798\" data-end=\"2830\">\u0632\u0645\u0627\u0646 \u06a9\u0644\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0627\u0647\u0634 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"1g4tcg2\" data-start=\"2831\" data-end=\"2860\">\u0628\u0647\u0631\u0647\u200c\u0648\u0631\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u0627\u0628\u062f.<\/li>\n<\/ul>\n<hr data-start=\"2862\" data-end=\"2865\" \/>\n<h2 data-section-id=\"ytxomp\" data-start=\"2867\" data-end=\"2904\">\u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645: \u0627\u06cc\u062c\u0627\u062f API \u0628\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u067e\u0631<\/h2>\n<p data-start=\"2906\" data-end=\"2933\">\u0641\u0627\u06cc\u0644 <code data-start=\"2911\" data-end=\"2922\">server.js<\/code> \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">express<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037c11\">require<\/span>(<span class=\"\u037cz\">'express'<\/span>);\r\n<span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">scrape<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037c11\">require<\/span>(<span class=\"\u037cz\">'.\/scraper'<\/span>);\r\n\r\n<span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">app<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037c11\">express<\/span>();\r\n\r\n<span class=\"\u037c11\">app<\/span><span class=\"\u037cv\">.<\/span>use(<span class=\"\u037c11\">express<\/span><span class=\"\u037cv\">.<\/span>json());\r\n\r\n<span class=\"\u037c11\">app<\/span><span class=\"\u037cv\">.<\/span>post(<span class=\"\u037cz\">'\/scrape'<\/span>, <span class=\"\u037cv\">async<\/span> (<span class=\"\u037c11\">req<\/span>, <span class=\"\u037c11\">res<\/span>) =&gt; {\r\n  <span class=\"\u037cv\">try<\/span> {\r\n    <span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">urls<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037c11\">req<\/span><span class=\"\u037cv\">.<\/span>body<span class=\"\u037cv\">.<\/span>urls;\r\n\r\n    <span class=\"\u037cv\">const<\/span> <span class=\"\u037c11\">results<\/span> <span class=\"\u037cv\">=<\/span> <span class=\"\u037cv\">await<\/span> <span class=\"\u037c11\">Promise<\/span><span class=\"\u037cv\">.<\/span>all(\r\n      <span class=\"\u037c11\">urls<\/span><span class=\"\u037cv\">.<\/span>map(<span class=\"\u037c11\">url<\/span> =&gt; <span class=\"\u037c11\">scrape<\/span>(<span class=\"\u037c11\">url<\/span>))\r\n    );\r\n\r\n    <span class=\"\u037c11\">res<\/span><span class=\"\u037cv\">.<\/span>json(<span class=\"\u037c11\">results<\/span>);\r\n\r\n  } <span class=\"\u037cv\">catch<\/span> (<span class=\"\u037c11\">error<\/span>) {\r\n    <span class=\"\u037c11\">res<\/span><span class=\"\u037cv\">.<\/span>status(<span class=\"\u037cy\">500<\/span>)<span class=\"\u037cv\">.<\/span>json({\r\n      error: <span class=\"\u037c11\">error<\/span><span class=\"\u037cv\">.<\/span>message\r\n    });\r\n  }\r\n});\r\n\r\n<span class=\"\u037c11\">app<\/span><span class=\"\u037cv\">.<\/span>listen(<span class=\"\u037cy\">3000<\/span>, () =&gt; {\r\n  <span class=\"\u037c11\">console<\/span><span class=\"\u037cv\">.<\/span>log(<span class=\"\u037cz\">'Server started'<\/span>);\r\n});<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"3420\" data-end=\"3503\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 URL\u0647\u0627 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u062a\u0627\u06cc\u062c \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a JSON \u062f\u0631\u06cc\u0627\u0641\u062a \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n<hr data-start=\"3505\" data-end=\"3508\" \/>\n<h2 data-section-id=\"16nkg6v\" data-start=\"3510\" data-end=\"3542\">\u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645: \u0633\u0627\u062e\u062a Docker Image<\/h2>\n<p data-start=\"3544\" data-end=\"3576\">\u0641\u0627\u06cc\u0644 <code data-start=\"3549\" data-end=\"3561\">Dockerfile<\/code> \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037cv\">FROM<\/span> node:18-slim\r\n\r\n<span class=\"\u037cv\">RUN<\/span> apt-get update &amp;&amp; apt-get install -y \\\r\n    chromium \\\r\n    fonts-liberation\r\n\r\n<span class=\"\u037cv\">WORKDIR<\/span> \/app\r\n\r\n<span class=\"\u037cv\">COPY<\/span> package*.json .\/\r\n\r\n<span class=\"\u037cv\">RUN<\/span> npm install\r\n\r\n<span class=\"\u037cv\">COPY<\/span> . .\r\n\r\n<span class=\"\u037cv\">ENV<\/span> PUPPETEER_EXECUTABLE_PATH=\/usr\/bin\/chromium\r\n\r\n<span class=\"\u037cv\">EXPOSE<\/span> <span class=\"\u037cy\">3000<\/span>\r\n\r\n<span class=\"\u037cv\">CMD<\/span> [<span class=\"\u037cz\">\"node\"<\/span>, <span class=\"\u037cz\">\"server.js\"<\/span>]<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"3848\" data-end=\"3868\">\u0633\u067e\u0633 \u0627\u06cc\u0645\u06cc\u062c \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker build <span class=\"\u037c12\">-t<\/span> concurrent-scraper .<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"3920\" data-end=\"3934\">\u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker run <span class=\"\u037c12\">-p<\/span> <span class=\"\u037cy\">3000<\/span>:3000 concurrent-scraper<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"3992\" data-end=\"3995\" \/>\n<h2 data-section-id=\"rwu0hq\" data-start=\"3997\" data-end=\"4037\">\u0645\u0631\u062d\u0644\u0647 \u0634\u0634\u0645: \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc Kubernetes<\/h2>\n<p data-start=\"4039\" data-end=\"4076\">\u0641\u0627\u06cc\u0644 <code data-start=\"4044\" data-end=\"4061\">deployment.yaml<\/code> \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>apiVersion: apps\/v1\r\nkind: Deployment\r\nmetadata:\r\n  name: scraper\r\nspec:\r\n  replicas: 3\r\n  selector:\r\n    matchLabels:\r\n      app: scraper\r\n  template:\r\n    metadata:\r\n      labels:\r\n        app: scraper\r\n    spec:\r\n      containers:\r\n      - name: scraper\r\n        image: concurrent-scraper:latest\r\n        ports:\r\n        - containerPort: 3000<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"4419\" data-end=\"4469\">\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0633\u0647 \u0646\u0645\u0648\u0646\u0647 (Replica) \u0627\u0632 \u0627\u0633\u06a9\u0631\u067e\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<hr data-start=\"4471\" data-end=\"4474\" \/>\n<h2 data-section-id=\"sdc2pq\" data-start=\"4476\" data-end=\"4504\">\u0645\u0631\u062d\u0644\u0647 \u0647\u0641\u062a\u0645: \u0627\u06cc\u062c\u0627\u062f Service<\/h2>\n<p data-start=\"4506\" data-end=\"4536\">\u0641\u0627\u06cc\u0644 <code data-start=\"4511\" data-end=\"4525\">service.yaml<\/code> \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>apiVersion: v1\r\nkind: Service\r\nmetadata:\r\n  name: scraper-service\r\nspec:\r\n  selector:\r\n    app: scraper\r\n  ports:\r\n  - port: 80\r\n    targetPort: 3000\r\n  type: LoadBalancer<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"4713\" data-end=\"4716\" \/>\n<h2 data-section-id=\"1v3svfm\" data-start=\"4718\" data-end=\"4742\">\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u0631 Kubernetes<\/h2>\n<p data-start=\"4744\" data-end=\"4764\">\u0645\u0646\u0627\u0628\u0639 \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>kubectl apply <span class=\"\u037c12\">-f<\/span> deployment.yaml\r\nkubectl apply <span class=\"\u037c12\">-f<\/span> <span class=\"\u037c10\">service<\/span>.yaml<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"4842\" data-end=\"4854\">\u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>kubectl <span class=\"\u037c10\">get<\/span> pods<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"4886\" data-end=\"4898\">\u0646\u0645\u0627\u06cc\u0634 \u0633\u0631\u0648\u06cc\u0633:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>kubectl <span class=\"\u037c10\">get<\/span> services<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"4934\" data-end=\"4937\" \/>\n<h2 data-section-id=\"chdq2p\" data-start=\"4939\" data-end=\"4977\">\u0645\u0632\u0627\u06cc\u0627\u06cc Kubernetes \u0628\u0631\u0627\u06cc Web Scraping<\/h2>\n<p data-start=\"4979\" data-end=\"5019\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Kubernetes \u0645\u0632\u0627\u06cc\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u062f\u0627\u0631\u062f:<\/p>\n<h3 data-section-id=\"36c1o\" data-start=\"5021\" data-end=\"5043\">\u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631<\/h3>\n<p data-start=\"5045\" data-end=\"5112\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0641\u0632\u0627\u06cc\u0634 \u062d\u062c\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0639\u062f\u0627\u062f Pod\u0647\u0627 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>kubectl scale deployment scraper <span class=\"\u037c12\">--replicas<\/span><span class=\"\u037cv\">=<\/span><span class=\"\u037cy\">10<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3 data-section-id=\"1q92lss\" data-start=\"5174\" data-end=\"5204\">\u062a\u062d\u0645\u0644 \u062e\u0637\u0627 (Fault Tolerance)<\/h3>\n<p data-start=\"5206\" data-end=\"5287\">\u0627\u06af\u0631 \u06cc\u06a9\u06cc \u0627\u0632 Pod\u0647\u0627 \u0627\u0632 \u06a9\u0627\u0631 \u0628\u06cc\u0641\u062a\u062f\u060c Kubernetes \u0628\u0647\u200c\u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0646\u0645\u0648\u0646\u0647 \u062c\u062f\u06cc\u062f\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h3 data-section-id=\"jdt0gt\" data-start=\"5289\" data-end=\"5302\">\u062a\u0648\u0632\u06cc\u0639 \u0628\u0627\u0631<\/h3>\n<p data-start=\"5304\" data-end=\"5383\">\u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0628\u06cc\u0646 Pod\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062a\u0648\u0632\u06cc\u0639 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0641\u0634\u0627\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u06a9\u0627\u0647\u0634 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<hr data-start=\"5385\" data-end=\"5388\" \/>\n<h2 data-section-id=\"17sxg7c\" data-start=\"5390\" data-end=\"5429\">\u0646\u06a9\u0627\u062a \u0645\u0647\u0645 \u0628\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u067e\u06cc\u0646\u06af \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0627\u0644\u0627<\/h2>\n<p data-start=\"5431\" data-end=\"5473\">\u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0646 \u062a\u0648\u0633\u0637 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u200c\u0647\u0627:<\/p>\n<ul data-start=\"5475\" data-end=\"5656\">\n<li data-section-id=\"5ziv9z\" data-start=\"5475\" data-end=\"5509\">\u0628\u06cc\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u062a\u0623\u062e\u06cc\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/li>\n<li data-section-id=\"1pkmhpf\" data-start=\"5510\" data-end=\"5534\">\u0627\u0632 Proxy \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li data-section-id=\"8u8cdb\" data-start=\"5535\" data-end=\"5562\">User-Agent \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/li>\n<li data-section-id=\"13ibsai\" data-start=\"5563\" data-end=\"5615\">\u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0646\u0631\u062e \u062f\u0631\u062e\u0648\u0627\u0633\u062a (Rate Limiting) \u0631\u0627 \u0631\u0639\u0627\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/li>\n<li data-section-id=\"snw40q\" data-start=\"5616\" data-end=\"5656\">\u0641\u0627\u06cc\u0644 robots.txt \u0633\u0627\u06cc\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<hr data-start=\"5658\" data-end=\"5661\" \/>\n<h2 data-section-id=\"530oc4\" data-start=\"5663\" data-end=\"5674\">\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h2>\n<p data-start=\"5676\" data-end=\"5998\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u06cc\u062f \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong data-start=\"5720\" data-end=\"5733\">Puppeteer<\/strong>\u060c <strong data-start=\"5735\" data-end=\"5746\">Node.js<\/strong>\u060c <strong data-start=\"5748\" data-end=\"5758\">Docker<\/strong> \u0648 <strong data-start=\"5761\" data-end=\"5775\">Kubernetes<\/strong> \u06cc\u06a9 \u0648\u0628\u200c\u0627\u0633\u06a9\u0631\u067e\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0628\u0627 \u06a9\u0645\u06a9 <code data-start=\"5828\" data-end=\"5841\">Promise.all<\/code> \u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u062f \u0686\u0646\u062f\u06cc\u0646 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u06cc\u062f\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062f\u0631 Docker \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0633\u0627\u0632\u06cc \u0646\u0645\u0627\u06cc\u06cc\u062f \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0627 Kubernetes \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0627\u0644\u0627 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"6000\" data-end=\"6123\" data-is-last-node=\"\" data-is-only-node=\"\">\u0627\u06cc\u0646 \u0645\u0639\u0645\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u062f\u0627\u062f\u0647\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u200c\u0647\u0627\u060c \u062a\u062d\u0644\u06cc\u0644 \u0631\u0642\u0628\u0627 \u0648 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0631 \u062d\u062c\u0645 \u0628\u0627\u0644\u0627 \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a.<\/p>\n<p data-start=\"6000\" data-end=\"6123\" data-is-last-node=\"\" data-is-only-node=\"\">\n<p data-start=\"6000\" data-end=\"6123\" data-is-last-node=\"\" data-is-only-node=\"\">\n<p data-start=\"6000\" data-end=\"6123\" data-is-last-node=\"\" data-is-only-node=\"\">\u0627\u0632 \u0647\u0645\u0631\u0627\u0647\u06cc \u0634\u0645\u0627 \u0628\u0627 <strong><a href=\"https:\/\/parmin.cloud\/\">\u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/a><\/strong> \u0645\u062a\u0634\u06a9\u0631\u06cc\u0645.<\/p>\n<div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u0648\u0628\u200c\u0627\u0633\u06a9\u0631\u067e\u06cc\u0646\u06af (Web Scraping) \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0632 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u200c\u0647\u0627 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062a\u06a9\u0646\u06cc\u06a9 \u0628\u0631\u0627\u06cc \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0642\u06cc\u0645\u062a\u200c\u0647\u0627\u060c \u062a\u062d\u0644\u06cc\u0644 \u0631\u0642\u0628\u0627\u060c \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u062d\u062a\u0648\u0627 \u0648 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f. \u0627\u0645\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062d\u062c\u0645 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u067e\u06cc\u0646\u06af \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062a\u0631\u062a\u06cc\u0628\u06cc (Sequential) \u062f\u06cc\u06af\u0631 \u06a9\u0627\u0631\u0622\u0645\u062f \u0646\u06cc\u0633\u062a. \u062f\u0631 \u0686\u0646\u06cc\u0646 \u0634\u0631\u0627\u06cc\u0637\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u0645\u0632\u0645\u0627\u0646 (Concurrent [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":6509,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[8,131,215],"tags":[1323,1322,1327,1330,1326,1325,1328,1329,1324,1331],"class_list":["post-6508","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-8","category-131","category-server","tag-kubernetes---web-scraping","tag--docker---","tag--puppeteer----","tag--web-scraping--node-js","tag-1326","tag------node-js","tag----node-js","tag----docker--kubernetes","tag-1324","tag----puppeteer"],"aioseo_notices":[],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=6508"}],"version-history":[{"count":1,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6508\/revisions"}],"predecessor-version":[{"id":6510,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6508\/revisions\/6510"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/6509"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=6508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=6508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=6508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}