आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

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

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

1. उपयोग में आसानी

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

instagram viewer

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

सुंदर सूप का उपयोग करके example.com पर शीर्षक टैग सामग्री को परिमार्जन करने के लिए, आप निम्न कोड का उपयोग करेंगे:

यूआरएल = "https://example.com/"
रेस = अनुरोध। (यूआरएल) प्राप्त करें। टेक्स्ट
सूप = सुंदर सूप (रेस, 'html.पार्सर')
शीर्षक = सूप.खोज ("शीर्षक")।मूलपाठ
छपाई(शीर्षक)

सेलेनियम का उपयोग करके समान परिणाम प्राप्त करने के लिए, आप लिखेंगे:

यूआरएल = "https://example.com"
ड्राइवर = वेबड्राइवर। क्रोम ("पथ/से/क्रोमड्राइवर")
चालक।पाना(यूआरएल)
शीर्षक = ड्राइवर.खोज_तत्व (द्वारा. TAG_NAME, "शीर्षक".get_attribute('मूलपाठ')
छपाई(शीर्षक)

स्क्रेपी प्रोजेक्ट की फ़ाइल संरचना में कई फाइलें होती हैं, जो इसकी जटिलता को जोड़ती है। निम्न कोड example.com से शीर्षक को स्क्रैप करता है:

आयात स्क्रैपी

कक्षाशीर्षकस्पाइडर(स्क्रैपी। मकड़ी):
नाम = 'शीर्षक'
start_urls = ['https://example.com']

डीईएफ़पार्स(स्वयं, प्रतिक्रिया):
उपज {
'नाम': प्रतिक्रिया सीएसएस ('शीर्षक'),
}

यदि आप एक आधिकारिक एपीआई प्रदान करने वाली सेवा से डेटा निकालना चाहते हैं, तो यह एक बुद्धिमान निर्णय हो सकता है वेब स्क्रैपर विकसित करने के बजाय एपीआई का उपयोग करें.

2. स्क्रैपिंग गति और समांतरता

तीन में से, जब गति की बात आती है तो स्क्रेपी स्पष्ट विजेता होता है। ऐसा इसलिए है क्योंकि यह डिफ़ॉल्ट रूप से समांतरता का समर्थन करता है। स्क्रेपी का उपयोग करके, आप एक साथ कई HTTP अनुरोध भेज सकते हैं, और जब स्क्रिप्ट ने अनुरोधों के पहले सेट के लिए HTML कोड डाउनलोड कर लिया है, तो यह दूसरा बैच भेजने के लिए तैयार है।

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

यदि आप गति के मामले में इन तीन वेब स्क्रैपिंग टूल को रैंक करना चाहते हैं, तो स्क्रेपी सबसे तेज़ है, इसके बाद ब्यूटीफुल सूप और सेलेनियम है।

3. स्मृति प्रयोग

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

चूंकि बाद वाले पूरी तरह से कमांड लाइन में काम करते हैं, वे कम सिस्टम संसाधनों का उपयोग करते हैं और सेलेनियम की तुलना में बेहतर प्रदर्शन प्रदान करते हैं।

4. निर्भरता आवश्यकताएँ

सुंदर सूप पार्सिंग टूल का एक संग्रह है जो आपको HTML और XML फ़ाइलों से डेटा निकालने में मदद करता है। यह और कुछ नहीं के साथ जहाज करता है। आपको पुस्तकालयों का उपयोग करना होगा अनुरोध या urllib HTTP अनुरोध करने के लिए, HTML/XML को पार्स करने के लिए बिल्ट-इन पार्सर, और प्रॉक्सी या डेटाबेस समर्थन को लागू करने के लिए अतिरिक्त लाइब्रेरी।

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

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

5. दस्तावेज़ीकरण गुणवत्ता

कुल मिलाकर, परियोजना का प्रत्येक दस्तावेज अच्छी तरह से संरचित है और उदाहरणों का उपयोग करके प्रत्येक विधि का वर्णन करता है। लेकिन किसी प्रोजेक्ट के दस्तावेज़ीकरण की प्रभावशीलता पाठक पर भी निर्भर करती है।

वेब स्क्रैपिंग के साथ शुरुआत करने वाले शुरुआती लोगों के लिए सुंदर सूप का प्रलेखन बहुत बेहतर है। सेलेनियम और स्क्रेपी के पास विस्तृत दस्तावेज हैं, इसमें कोई संदेह नहीं है, लेकिन तकनीकी शब्दजाल कई नवागंतुकों को ऑफ-गार्ड पकड़ सकता है।

यदि आप प्रोग्रामिंग अवधारणाओं और शब्दावली के साथ अनुभवी हैं, तो तीनों में से कोई भी दस्तावेज़ पढ़ने के लिए एक चिंच होगा।

6. एक्सटेंशन और मिडलवेयर के लिए समर्थन

Scrapy सबसे अधिक एक्स्टेंसिबल वेब स्क्रैपिंग Python फ्रेमवर्क है, अवधि। यह मिडलवेयर, एक्सटेंशन, प्रॉक्सी और बहुत कुछ का समर्थन करता है, और आपको बड़े पैमाने की परियोजनाओं के लिए क्रॉलर विकसित करने में मदद करता है।

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

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

7. जावास्क्रिप्ट प्रतिपादन

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

आप किसी वेबसाइट को लोड करने के लिए ब्राउज़र का उपयोग करते हैं, क्लिक और बटन प्रेस का उपयोग करके उसके साथ इंटरैक्ट करते हैं, और कब आपके पास स्क्रीन पर परिमार्जन करने के लिए आवश्यक सामग्री है, इसे सेलेनियम के सीएसएस और XPath का उपयोग करके निकालें चयनकर्ता।

सुंदर सूप या तो XPath या CSS चयनकर्ताओं का उपयोग करके HTML तत्वों का चयन कर सकता है। हालांकि, यह किसी वेब पेज पर जावास्क्रिप्ट-प्रदत्त तत्वों को परिमार्जन करने की कार्यक्षमता प्रदान नहीं करता है।

पायथन के साथ वेब स्क्रैपिंग मेड ईज़ी

इंटरनेट कच्चे डेटा से भरा है। वेब स्क्रैपिंग इस डेटा को सार्थक जानकारी में बदलने में मदद करता है जिसे अच्छे उपयोग में लाया जा सकता है। यदि आप जावास्क्रिप्ट के साथ एक वेबसाइट परिमार्जन करना चाहते हैं या डेटा निकालने से पहले कुछ ऑन-स्क्रीन तत्वों को ट्रिगर करने की आवश्यकता है तो सेलेनियम शायद आपकी सबसे सुरक्षित शर्त है।

स्क्रेपी आपकी सभी जरूरतों के लिए एक पूर्ण वेब स्क्रैपिंग फ्रेमवर्क है, चाहे आप एक छोटा क्रॉलर या एक बड़े पैमाने का स्क्रैपर लिखना चाहते हैं जो अपडेट किए गए डेटा के लिए इंटरनेट पर बार-बार क्रॉल करता है।

यदि आप शुरुआत कर रहे हैं या जल्दी से खुरचनी विकसित करने की आवश्यकता है तो आप सुंदर सूप का उपयोग कर सकते हैं। आप जिस भी ढांचे या पुस्तकालय के साथ जाते हैं, पायथन के साथ वेब स्क्रैपिंग सीखना शुरू करना आसान है।