🥳हमारे शक्तिशाली वेब स्क्रैपिंग टूलकिट तक पहुंचने के लिए स्क्रैपलेस समुदाय में शामिल हों और अपने निःशुल्क परीक्षण का दावा करें!
ब्लॉग पर वापस जाएँ

Node.js में Axios के साथ शुरुआत: शुरुआती लोगों के लिए एक गाइड

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

07-Nov-2024

हम सभी जानते हैं कि HTTP अनुरोधों को कुशलतापूर्वक संभालना महत्वपूर्ण है, और ऐसा करने में Axios एक ऐसा उपकरण है जो इसे आसान बनाता है। चाहे आप API से डेटा प्राप्त कर रहे हों, सर्वर पर डेटा भेज रहे हों, या बस वेबसाइटों से सामग्री स्क्रैप कर रहे हों, Axios प्रक्रिया को सुव्यवस्थित करने के लिए एक बेहतरीन उपकरण है।

आइए जानते हैं कि Axios क्या है, यह कैसे काम करता है, और Node.js में इसे प्रभावी ढंग से उपयोग करने के कुछ व्यावहारिक तरीकों का पता लगाते हैं।

Node.js में Axios क्या है?

Axios एक वादा-आधारित HTTP क्लाइंट है जिसे क्लाइंट-साइड और सर्वर-साइड दोनों जावास्क्रिप्ट वातावरणों के लिए डिज़ाइन किया गया है। Axios के साथ, आप फ्रंटएंड एप्लिकेशन में ब्राउज़र से और Node.js एप्लिकेशन में सर्वर से HTTP अनुरोध कर सकते हैं। Axios स्वचालित रूप से JSON डेटा को बदल देता है और अनुरोध-प्रतिक्रिया हैंडलिंग की कई जटिलताओं को संभालता है, जिससे API के साथ काम करना और डेटा को संभालना आसान हो जाता है।

Axios को मूल रूप से ब्राउज़र-आधारित HTTP क्लाइंट के रूप में बनाया गया था लेकिन सर्वर-साइड पर, विशेष रूप से Node.js के साथ, यह अविश्वसनीय रूप से लोकप्रिय हो गया है। अपने सरल सिंटैक्स और व्यापक अनुकूलन विकल्पों के साथ, Axios दुनिया भर के डेवलपर्स के लिए जाने-माने पुस्तकालयों में से एक बन गया है।

Axios की प्रमुख विशेषताएँ:

  1. वादा-आधारित: चूँकि Axios वादों पर बनाया गया है, इसलिए यह async/await सिंटैक्स का उपयोग करके स्वच्छ, अधिक प्रबंधनीय कोड की अनुमति देता है। यह दृष्टिकोण कॉलबैक नरक के बिना अतुल्यकालिक कोड लिखना आसान बनाता है, जिससे आपका कोड अधिक पठनीय और बनाए रखने योग्य बन जाता है।

  2. स्वचालित डेटा रूपांतरण: Axios स्वचालित रूप से JSON डेटा को बदल देता है, JSON प्रारूप में डेटा भेजने और प्राप्त करने की प्रक्रिया को सरल बनाता है। जब यह JSON प्रारूप में कोई अनुरोध भेजता है या कोई प्रतिक्रिया प्राप्त करता है, तो यह डेटा को स्वचालित रूप से पार्स करता है और क्रमबद्ध करता है, जिससे आप सीधे जावास्क्रिप्ट ऑब्जेक्ट के साथ काम कर सकते हैं।

  3. क्लाइंट और सर्वर-साइड संगतता: Axios क्लाइंट-साइड (ब्राउज़र में) और सर्वर-साइड (Node.js में) दोनों पर काम करता है, जिससे यह फ्रंटएंड और बैकएंड विकास दोनों के लिए बहुमुखी बन जाता है। जब Node.js में उपयोग किया जाता है, तो Axios API को HTTP अनुरोध करना, सर्वर-टू-सर्वर डेटा प्राप्त करना और बहुत कुछ सरल बनाता है।

  4. बिल्ट-इन इंटरसेप्टर: Axios अनुरोध और प्रतिक्रिया इंटरसेप्टर का समर्थन करता है, जो अनुरोध भेजे जाने या प्रतिक्रिया संसाधित होने से पहले लॉगिंग, त्रुटि हैंडलिंग, प्रमाणीकरण या हेडर जोड़ने जैसे कार्यों को संभालने के लिए उपयोगी होते हैं।

  5. अनुकूलन योग्य कॉन्फ़िगरेशन: Axios व्यापक अनुकूलन की अनुमति देता है। उदाहरण के लिए, आप हेडर या बेस URL जैसे वैश्विक डिफ़ॉल्ट सेट कर सकते हैं, जिससे विभिन्न वातावरणों के लिए कॉन्फ़िगर करना आसान हो जाता है।

  6. त्रुटि हैंडलिंग: Axios एक मजबूत त्रुटि-हैंडलिंग तंत्र प्रदान करता है जो आपको वापस की गई स्थिति कोड के आधार पर त्रुटियों को पकड़ने देता है। आप क्लाइंट और सर्वर त्रुटियों को अलग तरह से संभाल सकते हैं, जिससे प्रतिक्रिया हैंडलिंग का प्रबंधन करना आसान हो जाता है।

Node.js में Axios के लिए सामान्य उपयोग के मामले

  • API से डेटा प्राप्त करना: Axios को Node.js में API से डेटा प्राप्त करने के लिए आमतौर पर उपयोग किया जाता है, जिससे RESTful एप्लिकेशन बनाना आदर्श होता है, खासकर जब आपको तृतीय-पक्ष सेवाओं या माइक्रोसर्विस के साथ बातचीत करने की आवश्यकता होती है।

  • वेब स्क्रैपिंग: Axios का उपयोग वेबसाइटों से HTML सामग्री प्राप्त करने के लिए किया जा सकता है जब वेब स्क्रैपिंग होती है, खासकर स्थिर साइटों के लिए। Cheerio जैसे उपकरणों के साथ मिलकर, यह HTML को पार्स करने के लिए सक्षम बनाता है ताकि प्रासंगिक डेटा निकाला जा सके।

  • प्रमाणीकरण को संभालना: Axios का उपयोग अक्सर Node.js में प्रमाणीकरण सेवाओं के साथ बातचीत करने के लिए किया जाता है, जैसे प्रमाणीकरण के लिए API को क्रेडेंशियल भेजना और टोकन को संभालना।

  • फ़ाइल अपलोड/डाउनलोड: यह बाइनरी डेटा को भी संभालने में सक्षम है, इसलिए आप इसका उपयोग सर्वर से फ़ाइलें अपलोड या डाउनलोड करने के लिए कर सकते हैं।

वेब स्क्रैपिंग चुनौतियों और आपके द्वारा काम किए जा रहे प्रोजेक्ट पर लगातार ब्लॉक होने में परेशानी हो रही है?
डेटा निष्कर्षण को आसान और कुशल बनाने के लिए Scrapeless का उपयोग करने का प्रयास करें, सभी एक शक्तिशाली उपकरण में। आज ही इसे मुफ्त में आज़माएं!

Node.js में उदाहरण का उपयोग

नीचे Node.js में Axios का उपयोग करके GET अनुरोध करने का एक उदाहरण दिया गया है:

javascript Copy
const axios = require('axios');

async function fetchData() {
  try {
    const response = await axios.get('https://jsonplaceholder.typicode.com/posts');
    console.log(response.data);
  } catch (error) {
    console.error('Error fetching data:', error.message);
  }
}

fetchData();

यह कोड Node.js में Axios के साथ अनुरोध करने की सादगी को दर्शाता है। response.data में API से वास्तविक डेटा होता है, जबकि error.message किसी भी त्रुटि को संभालता है जो हो सकती है, अनुरोध हैंडलिंग के लिए एक सुव्यवस्थित दृष्टिकोण प्रदान करता है।

क्या Axios सर्वर-साइड या क्लाइंट-साइड है?

Axios एक बहुमुखी HTTP क्लाइंट है जो सर्वर और क्लाइंट दोनों वातावरणों पर काम करता है। यह इस प्रकार है कि यह प्रत्येक में कैसे फिट बैठता है:

  • सर्वर-साइड (Node.js): Node.js में, Axios बैकएंड सर्वर से HTTP अनुरोध कर सकता है। यह सुविधा आमतौर पर सर्वर-टू-सर्वर संचार, तृतीय-पक्ष API से डेटा पुनर्प्राप्ति और वेबसाइटों को स्क्रैप करने के लिए उपयोग की जाती है।
  • क्लाइंट-साइड (ब्राउज़र): फ्रंटएंड एप्लिकेशन में, Axios HTTP अनुरोधों को संभालता है, जैसे API से डेटा प्राप्त करना और पोस्ट करना।

Axios का उपयोग करके, आपको क्लाइंट और सर्वर दोनों HTTP अनुरोधों को संभालने के लिए एक एकीकृत API मिलता है, जिससे कोड अधिक पुन: प्रयोज्य हो जाता है और फ्रंटएंड और बैकएंड के लिए विभिन्न अनुरोध विधियों को सीखने की आवश्यकता कम हो जाती है।

क्या Axios एक नोड मॉड्यूल है?

हाँ, Axios एक नोड मॉड्यूल है। यह एक स्टैंडअलोन लाइब्रेरी है, जिसका अर्थ है कि आप इसे किसी भी Node.js प्रोजेक्ट में npm या यार्न के माध्यम से आसानी से इंस्टॉल कर सकते हैं। यह Node.js के साथ डिफ़ॉल्ट रूप से बंडल नहीं है लेकिन किसी भी प्रोजेक्ट में इसे निर्भरता के रूप में इंस्टॉल करके एकीकृत किया जा सकता है।

Axios को इंस्टॉल करने के लिए, आप अपने टर्मिनल में निम्न कमांड का उपयोग कर सकते हैं:

bash Copy
npm install axios

इंस्टॉल करने के बाद, आप अपने स्क्रिप्ट के शीर्ष पर Axios को इस प्रकार आयात कर सकते हैं:

javascript Copy
const axios = require('axios');

यह मॉड्यूल हल्का, तेज है और आपके प्रोजेक्ट में अधिक जटिलता जोड़े बिना HTTP अनुरोधों को संभालने के लिए डिज़ाइन किया गया है।

टर्मिनल में Axios को कैसे इंस्टॉल करें?

अपने Node.js वातावरण में Axios को इंस्टॉल करने के लिए, अपने टर्मिनल को खोलें और अपने प्रोजेक्ट की रूट निर्देशिका पर नेविगेट करें। निम्न कमांड चलाएँ:

bash Copy
npm install axios

या यदि आप यार्न पसंद करते हैं, तो आप इसका उपयोग कर सकते हैं:

bash Copy
yarn add axios

एक बार इंस्टॉल हो जाने के बाद, आप पिछले अनुभाग में दिखाए गए अनुसार इसे अपने प्रोजेक्ट में आवश्यकतानुसार या आयात करके तुरंत उपयोग कर सकते हैं। यह इंस्टॉलेशन Axios को आपके प्रोजेक्ट में एक निर्भरता के रूप में जोड़ेगा, जिससे आप HTTP अनुरोधों को कुशलतापूर्वक संभालने के लिए इसकी विधियों का उपयोग कर सकते हैं।

वेब स्क्रैपिंग में Axios का उपयोग कैसे करें

वेब स्क्रैपिंग में Axios का प्रभावी ढंग से उपयोग करने के लिए, एक पूर्ण मार्गदर्शिका के लिए इन चरणों का पालन करें, Axios को स्थापित करने से लेकर चुनौतियों को संभालने और डेटा को पार्स करने तक। यहां बताया गया है कि वेब स्क्रैपिंग में Axios का उपयोग कैसे करें:

1. वेब स्क्रैपिंग के लिए Axios को स्थापित करना

सबसे पहले, सुनिश्चित करें कि आपके प्रोजेक्ट में Node.js और Axios स्थापित हैं। आप निम्न को चलाकर Axios को इंस्टॉल कर सकते हैं:

bash Copy
npm install axios

Axios इंस्टॉल होने के साथ, यह वेबसाइटों पर HTTP अनुरोध करने के लिए तैयार है।

2. वेब पेज सामग्री प्राप्त करने के लिए मूल उपयोग

वेब स्क्रैपिंग करते समय, मुख्य लक्ष्य एक वेबपेज की HTML सामग्री प्राप्त करना है। यहां बताया गया है कि आप Axios का उपयोग करके किसी वेबसाइट पर एक साधारण GET अनुरोध कैसे कर सकते हैं:

javascript Copy
const axios = require('axios');

async function fetchHTML(url) {
  try {
    const response = await axios.get(url);
    return response.data; // पेज की HTML सामग्री
  } catch (error) {
    console.error(`Error fetching HTML: ${error.message}`);
  }
}

fetchHTML('https://example.com').then(html => console.log(html));

इस कोड में, fetchHTML दिए गए URL पर एक GET अनुरोध भेजता है और HTML सामग्री देता है। यह स्थिर वेबसाइटों से डेटा स्क्रैपिंग के लिए आधार है।

3. HTML सामग्री को पार्स करना

HTML से विशिष्ट जानकारी निकालने के लिए, Cheerio जैसी पार्सिंग लाइब्रेरी का उपयोग करें। Cheerio आपको jQuery जैसे सिंटैक्स का उपयोग करके HTML को क्वेरी करने की अनुमति देता है, जिससे तत्वों को लक्षित करना आसान हो जाता है। इसे चलाकर इंस्टॉल करें:

bash Copy
npm install cheerio

यहां बताया गया है कि आप किसी वेबपेज से डेटा स्क्रैप करने के लिए Axios के साथ Cheerio का उपयोग कैसे कर सकते हैं:

javascript Copy
const axios = require('axios');
const cheerio = require('cheerio');

async function scrapeWebsite(url) {
  try {
    const { data } = await axios.get(url);
    const $ = cheerio.load(data);

    // उदाहरण: सभी लेख शीर्षक निकालें
    const titles = [];
    $('h2.article-title').each((i, element) => {
      titles.push($(element).text());
    });

    console.log('Scraped Titles:', titles);
  } catch (error) {
    console.error(`Error scraping website: ${error.message}`);
  }
}

scrapeWebsite('https://example.com/articles');

इस उदाहरण में, Axios HTML पुनर्प्राप्त करता है, और Cheerio इसे पार्स करता है ताकि लेख शीर्षक (h2.article-title इस मामले में) निकाले जा सकें। आप पेज पर विभिन्न तत्वों को लक्षित करने के लिए चयनकर्ताओं को समायोजित कर सकते हैं।

4. हेडर और उपयोगकर्ता एजेंट को संभालना

कुछ वेबसाइटें गैर-ब्राउज़र क्लाइंट से अनुरोधों को अवरुद्ध करती हैं। एक वास्तविक ब्राउज़र की नकल करने के लिए, अपने Axios अनुरोध में User-Agent जैसे हेडर शामिल करें। यहां बताया गया है कि हेडर कैसे सेट करें:

javascript Copy
const axios = require('axios');

async function fetchWithHeaders(url) {
  try {
    const response = await axios.get(url, {
      headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'
      }
    });
    return response.data;
  } catch (error) {
    console.error(`Error with headers: ${error.message}`);
  }
}

fetchWithHeaders('https://example.com').then(html => console.log(html));

हेडर जोड़ने से साइट को आपके अनुरोध को अवरुद्ध करने से रोकने में मदद मिल सकती है। User-Agent हेडर आपके अनुरोध को एक वास्तविक ब्राउज़र से आने वाला बनाता है।

5. जावास्क्रिप्ट-रेंडर किए गए पृष्ठों से निपटना

Axios स्थिर साइटों के लिए आदर्श है, लेकिन यह जावास्क्रिप्ट निष्पादित नहीं कर सकता है। यदि आप जावास्क्रिप्ट-भारी साइटों को स्क्रैप कर रहे हैं, तो पेज को पूरी तरह से रेंडर करने के लिए Puppeteer या Playwright का उपयोग करें। Axios-केवल समाधानों के लिए, स्थिर सामग्री पर ध्यान दें या API जैसी वैकल्पिक डेटा स्रोतों की तलाश करें।

6. त्रुटि हैंडलिंग और दर सीमा

दर सीमा या अवरुद्ध अनुरोधों जैसी समस्याओं का प्रबंधन करने के लिए त्रुटि हैंडलिंग वेब स्क्रैपिंग में आवश्यक है। यहां एक बुनियादी पुन: प्रयास तंत्र के साथ एक उदाहरण दिया गया है:

javascript Copy
const axios = require('axios');

async function fetchWithRetries(url, retries = 3) {
  for (let i = 0; i < retries; i++) {
    try {
      const response = await axios.get(url);
      return response.data;
    } catch (error) {
      console.error(`Attempt ${i + 1} failed: ${error.message}`);
      if (i === retries - 1) throw error;
    }
  }
}

fetchWithRetries('https://example.com').then(html => console.log(html));

7. डेटा को संग्रहीत करना या संसाधित करना

एक बार आपके पास डेटा हो जाने के बाद, आगे के विश्लेषण के लिए इसे किसी फ़ाइल या डेटाबेस में सहेजें। उदाहरण के लिए, आप JSON फ़ाइल में डेटा सहेजने के लिए fs का उपयोग कर सकते हैं:

javascript Copy
const fs = require('fs');
const axios = require('axios');
const cheerio = require('cheerio');

async function scrapeAndSave(url) {
  try {
    const { data } = await axios.get(url);
    const $ = cheerio.load(data);
    const results = [];

    // विशिष्ट डेटा स्क्रैप करें
    $('h2.article-title').each((i, element) => {
      results.push($(element).text());
    });

    fs.writeFileSync('data.json', JSON.stringify(results, null, 2));
    console.log('Data saved to data.json');
  } catch (error) {
    console.error(`Error saving data: ${error.message}`);
  }
}

scrapeAndSave('https://example.com/articles');

इस उदाहरण में, स्क्रैप किया गया डेटा data.json में सहेजा जाता है, जिसे आप बाद में विश्लेषण के लिए लोड कर सकते हैं।

8. सामान्य चुनौतियों को संभालना

  • बॉट डिटेक्शन: हेडर जोड़ना और कुकीज़ को संभालना अनुरोधों को अधिक वैध बना सकता है।
  • दर सीमा: सर्वर को अतिभारित करने से बचने के लिए अनुरोधों के बीच देरी का उपयोग करें या पुन: प्रयास तंत्र लागू करें।
  • अवरुद्ध IP: आक्रामक विरोधी-स्क्रैपिंग उपायों वाली साइटों को स्क्रैप करते समय अवरुद्ध होने से बचने के लिए IP को घुमाएं या प्रॉक्सी सेवाओं का उपयोग करें।

निष्कर्ष

इस मार्गदर्शिका में, हमने वेब स्क्रैपिंग के लिए Node.js में Axios का उपयोग करने की अनिवार्य बातों को शामिल किया है। आपने Axios की Node.js मॉड्यूल के रूप में भूमिका, इसे कैसे इंस्टॉल और सेट अप किया जाए, और व्यावहारिक तकनीकों का पता लगाया जैसे हेडर जोड़ना, HTML को पार्स करने के लिए Cheerio का उपयोग करना और बॉट डिटेक्शन और त्रुटि प्रबंधन जैसी सामान्य वेब स्क्रैपिंग चुनौतियों को संभालना।

API एकीकरण, वेब स्क्रैपिंग या डेटा संग्रह के साथ काम करने वाले डेवलपर्स के लिए, Axios HTTP अनुरोध करने और प्रतिक्रियाओं को संभालने के लिए एक शक्तिशाली, लचीला और कुशल दृष्टिकोण प्रदान करता है। जबकि स्थिर सामग्री के लिए आदर्श है, Axios को Puppeteer या Playwright जैसे उपकरणों के साथ जोड़ने से गतिशील सामग्री के साथ सीमाओं को दूर करने में मदद मिल सकती है।

इन रणनीतियों के साथ, आप Axios का प्रभावी ढंग से उपयोग करने के लिए सुसज्जित हैं, जिससे यह किसी भी डेवलपर के टूलकिट का एक बहुमुखी अतिरिक्त बन जाता है। अपने API कॉल और वेब स्क्रैपिंग प्रोजेक्ट को विश्वसनीयता और दक्षता के लिए अनुकूलित करने के लिए विभिन्न कॉन्फ़िगरेशन के साथ प्रयोग करें।

स्क्रैपलेस में, हम लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से पालन करते हुए केवल सार्वजनिक रूप से उपलब्ध डेटा तक पहुंचते हैं। इस ब्लॉग की सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई भी अवैध या उल्लंघनकारी गतिविधियां शामिल नहीं हैं। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए कोई गारंटी नहीं देते हैं और सभी दायित्व से इनकार करते हैं। किसी भी स्क्रैपिंग गतिविधियों में शामिल होने से पहले, अपने कानूनी सलाहकार से परामर्श लें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।

सर्वाधिक लोकप्रिय लेख

सूची