JavaScript आपका स्वचालन में मुख्य सहायक क्यों है
\n\nक्या आपने कभी सोचा है कि आप एक जैसे कार्यों में घंटों बिता रहे हैं: सैकड़ों फ़ाइलों का नाम बदलना, तालिकाओं से डेटा कॉपी करना, दर्जनों ईमेल भेजना या जाँचना कि साइट डाउन तो नहीं हुई? यदि हाँ, तो यह लेख आपके लिए है।
\n\nJavaScript लंबे समय से केवल "बटन एनिमेशन की भाषा" नहीं रह गया है। Node.js और शक्तिशाली लाइब्रेरीज़ के आगमन के साथ, यह कार्यों के स्वचालन के लिए एक सार्वभौमिक उपकरण बन गया है। और हाँ, भले ही आप Python डेवलपर हों, JS आपका गुप्त हथियार बन सकता है: यह हर जगह काम करता है - ब्राउज़र में, सर्वर पर, क्लाउड में और यहाँ तक कि Raspberry Pi पर भी।
\n\nइस लेख में, हम JavaScript में स्वचालन के वास्तविक परिदृश्यों पर चर्चा करेंगे जो आपके दर्जनों घंटे बचाएंगे। कोई बेकार की बात नहीं - केवल कोड और अभ्यास।
\n\n1. ब्राउज़र स्वचालन: Puppeteer और Playwright
\n\nकल्पना करें: आपको एक ऑनलाइन स्टोर के 500 पृष्ठों से मूल्य एकत्र करने हैं, लेकिन कोई API नहीं है। मैन्युअल कॉपी-पेस्ट? नहीं, धन्यवाद। Puppeteer मदद के लिए आता है - Chromium को नियंत्रित करने के लिए एक लाइब्रेरी।
\n\nउदाहरण: समाचार शीर्षकों का पार्सिंग
\n\nconst puppeteer = require('puppeteer');\n\n(async () => {\n const browser = await puppeteer.launch({ headless: true });\n const page = await browser.newPage();\n \n await page.goto('https://news.ycombinator.com', { waitUntil: 'networkidle2' });\n \n const titles = await page.evaluate(() => {\n const items = document.querySelectorAll('.titleline > a');\n return Array.from(items).map(item => item.innerText);\n });\n \n console.log('नवीनतम समाचार:', titles.slice(0, 10));\n \n await browser.close();\n})();\n\nयह स्क्रिप्ट Hacker News खोलती है, पहले 10 समाचारों के शीर्षक एकत्र करती है और उन्हें कंसोल में प्रदर्शित करती है। वास्तविक जीवन में, आप CSV में सहेजना, Telegram पर भेजना या डेटाबेस में लिखना जोड़ सकते हैं।
\n\nPlaywright - सुपरपावर के साथ विकल्प
\nयदि आपको कई ब्राउज़रों (Chrome, Firefox, Safari) के साथ काम करना है या मोबाइल उपकरणों का अनुकरण करना है, तो Playwright का उपयोग करें। यह तेज़, अधिक स्थिर है और अनुरोधों को इंटरसेप्ट कर सकता है।
\n\n2. फ़ाइलों के साथ काम करना: नाम बदलना, छाँटना, सफाई
\n\nक्या आपके पास "IMG_20250101_123456.jpg" जैसे नामों वाली 1000 तस्वीरों का फ़ोल्डर है? उन्हें व्यवस्थित करना चाहते हैं? Node.js में अंतर्निहित fs (File System) मॉड्यूल सेकंडों में इसका समाधान करेगा।
उदाहरण: फ़ाइलों का सामूहिक नाम बदलना
\n\nconst fs = require('fs');\nconst path = require('path');\n\nconst directory = './photos';\n\nfs.readdir(directory, (err, files) => {\n if (err) throw err;\n \n files.forEach((file, index) => {\n const ext = path.extname(file);\n const newName = `photo_${String(index + 1).padStart(4, '0')}${ext}`;\n \n fs.rename(\n path.join(directory, file),\n path.join(directory, newName),\n (err) => {\n if (err) console.error(`फ़ाइल ${file} में त्रुटि:`, err);\n else console.log(`${file} → ${newName}`);\n }\n );\n });\n});\n\nआप स्क्रिप्ट को आसानी से संशोधित कर सकते हैं: एक्सटेंशन के अनुसार फ़िल्टर जोड़ें, EXIF से तिथि निकालें, टेम्पलेट के अनुसार नाम बदलें। यह आधार है जिस पर दर्जनों उपयोगिताएँ बनाई जाती हैं।
\n\n3. CSV और Excel के साथ स्वचालित कार्य (ऑफिस सुइट के बिना)
\n\nव्यावसायिक कार्यों में अक्सर तालिकाओं का प्रसंस्करण शामिल होता है। CSV के लिए अंतर्निहित मॉड्यूल या csv-parser लाइब्रेरी का उपयोग करें। Excel के लिए - xlsx (SheetJS) का उपयोग करें।
उदाहरण: CSV पढ़ना और रिपोर्ट बनाना
\n\nconst fs = require('fs');\nconst csv = require('csv-parser');\nconst createCsvWriter = require('csv-writer').createObjectCsvWriter;\n\nconst results = [];\n\nfs.createReadStream('orders.csv')\n .pipe(csv())\n .on('data', (row) => {\n if (parseFloat(row.total) > 100) {\n results.push({\n orderId: row.id,\n client: row.name,\n sum: row.total\n });\n }\n })\n .on('end', () => {\n const csvW