"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्क्रैपी का उपयोग करना: वेब स्क्रैपिंग के लिए एक सरल मार्गदर्शिका

स्क्रैपी का उपयोग करना: वेब स्क्रैपिंग के लिए एक सरल मार्गदर्शिका

2024-08-23 को प्रकाशित
ब्राउज़ करें:455

Using Scrapy: A Simple Guide to Web Scraping

स्क्रैपी पायथन में विकसित एक तेज़, उच्च-स्तरीय वेब क्रॉलिंग फ्रेमवर्क है, जिसका उपयोग वेब साइटों को क्रॉल करने और पृष्ठों से संरचित डेटा निकालने के लिए किया जाता है। ‌इसके उपयोग की एक विस्तृत श्रृंखला है और इसका उपयोग डेटा खनन, निगरानी और स्वचालित परीक्षण के लिए किया जा सकता है। ‌

स्क्रैपी का अवलोकन

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

वेब पेजों को क्रॉल करने के लिए स्क्रैपी के लाभ

वेब पेजों को क्रॉल करने के लिए स्क्रैपी के फायदों में मुख्य रूप से शामिल हैं: ‌
1.उच्च दक्षता​: स्क्रैपी अतुल्यकालिक प्रसंस्करण और समवर्ती अनुरोधों का उपयोग करता है, जो बड़े पैमाने पर क्रॉलिंग कार्यों को कुशलतापूर्वक संभाल सकता है और वेब क्रॉलिंग की दक्षता में सुधार कर सकता है। ‌
2.लचीलापन​: स्क्रैपी घटकों और प्लग-इन तंत्रों का एक समृद्ध सेट प्रदान करता है, और उपयोगकर्ता विभिन्न वेब क्रॉलिंग आवश्यकताओं को पूरा करने के लिए अपनी आवश्यकताओं के अनुसार उन्हें अनुकूलित और विस्तारित कर सकते हैं।
3.स्थिरता​: स्क्रैपी में अच्छी दोष सहनशीलता और स्थिरता है, और जटिल और बदलते नेटवर्क वातावरण का सामना कर सकती है। ‌
4.रिच फ़ंक्शंस‌: स्क्रैपी HTML, XML, JSON, आदि सहित कई डेटा प्रारूपों के पार्सिंग और प्रोसेसिंग का समर्थन करता है, और स्वचालित प्रसंस्करण, डेटा निष्कर्षण और डेटा भंडारण जैसे कार्य प्रदान करता है। ‌
5.मजबूत स्केलेबिलिटी​: स्क्रैपी वितरित क्रॉलिंग का समर्थन करता है, जो क्रॉलिंग दक्षता में सुधार करने के लिए कई क्रॉलर नोड्स के माध्यम से एक साथ डेटा को क्रॉल और संसाधित कर सकता है।

स्क्रैपी के साथ वेब पेजों को स्क्रैप करने के बुनियादी चरण

स्क्रेपी एक तेज़ और उन्नत वेब क्रॉलिंग और वेब स्क्रैपिंग फ्रेमवर्क है, जिसका उपयोग वेबसाइटों को क्रॉल करने और पृष्ठों से संरचित डेटा निकालने के लिए किया जाता है। ‌वेब स्क्रैपिंग के लिए स्क्रैपी का उपयोग करने के बुनियादी चरण यहां दिए गए हैं:‌

1.स्क्रेपी स्थापित करें

सबसे पहले, सुनिश्चित करें कि स्क्रैपी स्थापित है। ‌यदि यह अभी तक स्थापित नहीं है, तो आप इसे पाइप के माध्यम से स्थापित कर सकते हैं:
पिप इंस्टाल स्क्रैपी

2. एक स्क्रैपी प्रोजेक्ट बनाएं

एक नया स्क्रैपी प्रोजेक्ट बनाने के लिए स्क्रैपी स्टार्टप्रोजेक्ट कमांड का उपयोग करें। उदाहरण के लिए, myproject नाम से एक प्रोजेक्ट बनाएं:
स्क्रैपी स्टार्टप्रोजेक्ट मायप्रोजेक्ट

3. आइटम को परिभाषित करें

क्रॉल किए गए डेटा को संग्रहीत करने के लिए प्रोजेक्ट में आइटम को परिभाषित करें। उदाहरण के लिए, myproject/myproject/items.py में एक आइटम परिभाषित करें:

import scrapy

class MyprojectItem(scrapy.Item):
    title = scrapy.Field()
    link = scrapy.Field()
    desc = scrapy.Field()

4. एक मकड़ी लिखें

क्रॉल की जाने वाली वेबसाइट और उसे क्रॉल करने के तरीके को परिभाषित करने के लिए अपने प्रोजेक्ट में एक स्पाइडर बनाएं। उदाहरण के लिए, myproject/myproject/spider निर्देशिका में example.py नामक एक स्पाइडर फ़ाइल बनाएं:

import scrapy
from myproject.items import MyprojectItem

class ExampleSpider(scrapy.Spider):
    name = 'example'
    allowed_domains = ['example.com']
    start_urls = ['http://example.com/']

    def parse(self, response):
        items = []
        for sel in response.xpath('//ul/li'):
            item = MyprojectItem()
            item['title'] = sel.xpath('a/text()').get()
            item['link'] = sel.xpath('a/@href').get()
            item['desc'] = sel.xpath('text()').get()
            items.append(item)
        return items

5. मकड़ी चलाओ

स्पाइडर को चलाने के लिए स्क्रैपी क्रॉल कमांड का उपयोग करें। उदाहरण के लिए, ऊपर बनाया गया स्पाइडर उदाहरण चलाएँ:
स्क्रैपी क्रॉल उदाहरण

6. डेटा सहेजें

आप आइटम पाइपलाइन को परिभाषित करके क्रॉल किए गए डेटा को संसाधित कर सकते हैं, जैसे इसे किसी फ़ाइल या डेटाबेस में सहेजना।

7. आगे का विन्यास

आप स्क्रेपी प्रोजेक्ट को आवश्यकतानुसार कॉन्फ़िगर कर सकते हैं, जैसे मिडलवेयर, डाउनलोडर, लॉग इत्यादि सेट करना।

स्क्रैपी के साथ वेबसाइटों को क्रॉल करने के लिए ये बुनियादी चरण हैं। आपकी विशिष्ट आवश्यकताओं के आधार पर, आपको कुछ अतिरिक्त कॉन्फ़िगरेशन और अनुकूलन करने की आवश्यकता हो सकती है।

गतिशील उपयोगकर्ता-एजेंट का उपयोग करने के लिए स्क्रैपी कैसे सेट करें?

डायनामिक यूजर-एजेंट क्रॉलर्स को वेबसाइटों द्वारा पहचाने जाने से रोकने के लिए एक प्रभावी रणनीति है। ‌ स्क्रेपी में, डायनामिक यूजर-एजेंट को विभिन्न तरीकों से सेट किया जा सकता है: ‌ ‌

  • स्पाइडर वर्ग में एक कस्टम_सेटिंग्स विशेषता जोड़ें: ‌ यह विशेषता एक शब्दकोश है जिसका उपयोग कस्टम स्क्रैपी कॉन्फ़िगरेशन सेट करने के लिए किया जाता है। ‌ कस्टम_सेटिंग्स शब्दकोश में 'USER_AGENT' कुंजी जोड़ें और संबंधित उपयोगकर्ता-एजेंट मान सेट करें। ‌ ‌ ‌

  • fake_useragent लाइब्रेरी का उपयोग करें: ‌ इस लाइब्रेरी में बड़ी संख्या में अंतर्निहित उपयोगकर्ता-एजेंट हैं जिन्हें यादृच्छिक रूप से बदला जा सकता है। ‌ Fake_useragent पैकेज को स्थापित करने के बाद, एक यादृच्छिक उपयोगकर्ता-एजेंट उत्पन्न करने के लिए स्क्रैपी की सेटिंग्स कॉन्फ़िगरेशन फ़ाइल में लाइब्रेरी को आयात और उपयोग करें। ‌ ‌ ‌

  • रैंडम यूजर-एजेंट मिडलवेयर लागू करें: ‌ एक मिडलवेयर बनाएं जो प्रत्येक अनुरोध के लिए एक अलग यूजर-एजेंट असाइन करने के लिए फेक_यूजरएजेंट लाइब्रेरी का उपयोग करता है। ‌ ‌ ‌
    इन विधियों के माध्यम से, आप प्रभावी ढंग से सामान्य उपयोगकर्ता व्यवहार का अनुकरण कर सकते हैं और वेबसाइट द्वारा क्रॉलर के रूप में पहचाने जाने के जोखिम को कम कर सकते हैं। ‌ ‌

वेब क्रॉलिंग के लिए स्क्रैपी का उपयोग करते समय आपको प्रॉक्सी सेट अप करने की आवश्यकता क्यों है?

वेब स्क्रैपिंग के लिए स्क्रैपी फ्रेमवर्क का उपयोग करते समय, प्रॉक्सी सेट करना बहुत आवश्यक है। मुख्य कारण इस प्रकार हैं:

  • आईपी ब्लॉकिंग से बचें: जब क्रॉलर वेबसाइट तक पहुंचता है, यदि मूल आईपी पते का सीधे उपयोग किया जाता है, तो वेबसाइट द्वारा पहचाना और ब्लॉक किया जाना आसान होता है। प्रॉक्सी का उपयोग करने से वास्तविक आईपी पता छिपाया जा सकता है, जिससे अवरुद्ध होने से बचा जा सकता है और क्रॉलर की पहचान की रक्षा की जा सकती है। ‌

  • एक्सेस प्रतिबंधों को तोड़ें: कुछ वेबसाइटें एक्सेस प्रतिबंध लगा देंगी। प्रॉक्सी का उपयोग इन प्रतिबंधों को तोड़ सकता है और लक्ष्य वेबसाइट पर स्वतंत्र रूप से डेटा प्राप्त कर सकता है। ‌

  • क्रॉलर दक्षता में सुधार: कुछ परिदृश्यों में जहां बड़ी मात्रा में क्रॉलिंग डेटा की आवश्यकता होती है, प्रॉक्सी का उपयोग प्रभावी ढंग से आईपी पते को अवरुद्ध होने से बचा सकता है, जिससे क्रॉलर प्रोग्राम का सामान्य संचालन सुनिश्चित होता है और क्रॉलर दक्षता में सुधार होता है। ‌
    संक्षेप में, स्क्रैपी फ्रेमवर्क में बेहतर डेटा एकत्र करने के लिए, प्रॉक्सी स्थापित करना बहुत महत्वपूर्ण है।

स्क्रैपी में प्रॉक्सी सर्वर कैसे सेट करें?

स्क्रैपी में प्रॉक्सी सेट करना प्रोजेक्ट की सेटिंग्स.py फ़ाइल को संशोधित करके प्राप्त किया जा सकता है। ‌विशिष्ट चरण इस प्रकार हैं:*

  1. प्रॉक्सी सर्वर तैयार करें: सबसे पहले, आपको एक विश्वसनीय प्रॉक्सी सेवा प्रदाता से आईपी प्राप्त करना होगा और इसे एक फ़ाइल में सहेजना होगा या प्रॉक्सी के एपीआई का उपयोग करना होगा। ‌

  2. प्रॉक्सी सक्षम करें: प्रॉक्सी सक्षम करने के लिए सेटिंग्स.py फ़ाइल में PROXY_ENABLED = True सेट करें। ‌

  3. प्रॉक्सी आईपी और पोर्ट सेट करें: आप PROXY वेरिएबल सेट करके प्रॉक्सी और पोर्ट निर्दिष्ट कर सकते हैं, उदाहरण के लिए, PROXY = 'http://your_proxy_ip:port'। ‌

  4. डाउनलोडर मिडलवेयर को कॉन्फ़िगर करें: यह सुनिश्चित करने के लिए कि प्रॉक्सी सेटिंग्स प्रभावी हों, आपको सेटिंग्स.py फ़ाइल में DOWNLOADER_MIDDLEWARES कॉन्फ़िगरेशन में प्रॉक्सी-संबंधित मिडलवेयर सेटिंग्स को जोड़ने या संशोधित करने की आवश्यकता है। ‌

इस लेख को समझकर, आप वेब पेजों को क्रॉल करने के लिए स्क्रैपी का उपयोग करना सीख सकते हैं, और उपयोगकर्ता-एजेंट और एजेंटों को गतिशील रूप से सेट करके वेब क्रॉलिंग के दौरान आने वाली समस्याओं से बचने का प्रयास कर सकते हैं।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/lewis_kerr_2d0d4c5b886b02/using-scrapy-a-simple-guide-to-web-scraping-3a47?1 यदि कोई उल्लंघन है, तो हटाने के लिए कृपया [email protected] पर संपर्क करें यह
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3