स्क्रैपलिंग: वेब स्क्रैपर जो खुद को ठीक कर लेता है
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00यह Scrapling है, एक पायथन स्क्रैपर जो वेब स्क्रैपिंग की सबसे खराब समस्या को ठीक करने का प्रयास करता है।
00:00:05स्क्रैपर आज काम करता है, फिर साइट बदलते ही टूट जाता है। एक क्लास का नाम बदला,
00:00:10एक डिफ़ (div) हटा, एक बॉट चेक आया, और अब आपका डेटा पाइपलाइन खत्म। Scrapling का पूरा दावा है कि
00:00:17आपका स्क्रैपर बिखरने के बजाय अनुकूलित हो सकता है। इसके GitHub पर 53,000 से अधिक स्टार हैं,
00:00:22यह एडेप्टिव पार्सिंग, स्टील्थ फेचिंग, और बड़े क्रॉलर वर्कफ़्लो का समर्थन करता है।
00:00:27मैं उस एक सवाल का परीक्षण करने जा रहा हूं जो वास्तव में मायने रखता है।
00:00:30क्या यह सेलेक्टर को फिर से लिखे बिना वेबसाइट परिवर्तन से बच सकता है? हम अभी पता लगाने वाले हैं।
00:00:40तो Scrapling क्या है? Scrapling एक एडेप्टिव ऑल-इन-वन पायथन वेब स्क्रैपिंग फ्रेमवर्क है।
00:00:46आपको एक सेल्फ-हीलिंग पार्सर, स्टील्थ फेचर्स, जावास्क्रिप्ट की आवश्यकता होने पर ब्राउज़र-आधारित फेचिंग,
00:00:51और बड़े क्रॉल के लिए एक स्पाइडर फ्रेमवर्क मिलता है। एक इंस्टॉल, एक API। इसका मतलब है कम टूटे हुए
00:00:57स्क्रैपर्स और अधिक उपयोगी डेटा जो हमें वापस मिलता है। अब, उस हिस्से को देखते हैं जो वास्तव में मायने रखता है।
00:01:03यदि आप अपने वर्कफ़्लो को तेज़ करने के लिए कोडिंग टूल का आनंद लेते हैं, तो सब्सक्राइब करना सुनिश्चित करें। हमारे वीडियो हमेशा
00:01:08आते रहते हैं। अब, यहाँ मेरे पास एक बेसिक सेटअप है, ठीक है? मैंने Scrapling इंस्टॉल कर लिया है, तो हम इस
00:01:13हिस्से को जल्दी रखेंगे। पेज प्राप्त करने के लिए बस एक इम्पोर्ट और एक कॉल की आवश्यकता है। यहाँ ऊपर, मैंने कुछ HTML बनाया है जो बदल जाता है।
00:01:21एक सामान्य स्टार्टिंग साइट की तरह है। फिर मैंने वही चीज़ रखी, लेकिन मैंने CSS सेलेक्टर बदल दिए।
00:01:27मान लीजिए मैं उत्पाद का नाम और कीमत चाहता हूँ। अब, आमतौर पर मैं उन्हें CSS सेलेक्टर से ले सकता हूँ,
00:01:34ठीक है? तो पेज CSS, मैं अपना सेलेक्टर डालता हूँ, ऑटो-सेव, ट्रू। मैं ऐसा कर सकता हूँ और यह
00:01:40काम करेगा और हमें वापस डेटा की एक डिक्शनरी मिल जाएगी। सामान्य लगता है। दो सेलेक्टर, एक डिक्शनरी,
00:01:46मैं आगे बढ़ता हूँ। बस इतना ही। लेकिन साथ ही, यह वास्तव में समस्या है क्योंकि एक सामान्य स्क्रैपर
00:01:52तब तक बहुत अच्छा काम करता है जब तक कि वह पेज बदल न जाए। अब, क्या होगा यदि साइट रातोंरात अचानक बदल जाए? वे इसे रीडिज़ाइन
00:01:58करते हैं। वे इसे रोकने के लिए कुछ करते हैं। तो प्रोडक्ट टाइटल 'आइटम हेडिंग' बन जाता है या प्रोडक्ट प्राइस 'प्राइसिंग वैल्यू'
00:02:04बन जाता है। पेज पर वही डेटा है, लेकिन पूरा DOM बदल गया है। पुराने सेलेक्टर बेकार
00:02:11हो जाने चाहिए। और यहीं पर अधिकांश स्क्रैपर्स बस टूट जाएंगे। लेकिन अब हम एडेप्टिव मोड चालू कर सकते हैं।
00:02:18एक बदलाव, ऑटोसेव इक्वल ट्रू, एडेप्टिव इक्वल ट्रू बन जाता है। तो अब मैं अभी भी प्रोडक्ट टाइटल डाल सकता हूँ
00:02:26एडेप्टिव को ट्रू सेट करके। वही डेटा। मैंने सेलेक्टर नहीं बदले। यह अलग पेज संरचना है बिना
00:02:34सेलेक्टर को दोबारा लिखे। यहाँ मुख्य विचार यही है। अब, जब आप ऑटोसेव ट्रू के साथ किसी एलिमेंट को स्क्रैप करते हैं,
00:02:40Scrapling उसके बारे में सुराग रिकॉर्ड करता है। तो यह टैग, एट्रिब्यूट्स,
00:02:44पेरेंट्स और चिल्ड्रेन, कोई भी पड़ोसी टेक्स्ट, शायद DOM स्थिति और संरचनात्मक आकार जैसी चीजें रिकॉर्ड करेगा। तो जब
00:02:50क्लास का नाम बदलता है, Scrapling के पास और सुराग बचे होते हैं। इसे पूरी साइट के समान रहने की आवश्यकता नहीं है।
00:02:56इसे एलिमेंट को फिर से पहचानने के लिए केवल पर्याप्त संरचनात्मक संकेत की आवश्यकता होती है। और यही
00:03:01वह हिस्सा है जो मायने रखता है क्योंकि वास्तविक स्क्रैपर विफलताएं कभी भी पूर्ण रीडिज़ाइन नहीं होती हैं। यह एक रीनेम की गई क्लास,
00:03:06एक नया रैपर, एक शिफ्ट किया गया लेआउट, एक छोटी सी चीज है। यही वह है जिसके लिए एडेप्टिव मैचिंग बनाई गई है।
00:03:13Scrapling के तीन बड़े हिस्से हैं जो वास्तव में मायने रखते हैं। पहला एडेप्टिव पार्सर है, जो आपने अभी देखा।
00:03:18फिर मल्टीपल फेचर है, एक वर्कफ़्लो, काम के लिए सही टूल। फेचर सादे HTTP के लिए जाता है,
00:03:25साधारण वेब पेजों के लिए तेज़। स्टील्थी फेचर जरूरत पड़ने पर एंटी-बॉट को बायपास कर सकता है। डायनामिक फेचर है वास्तविक
00:03:32JS भारी साइटों के लिए ब्राउज़र। एक API, फेचर को स्वैप करें, कोड वही रखें। स्पाइडर फ्रेमवर्क तब होता है जब त्वरित
00:03:39स्क्रिप्ट एक वास्तविक क्रॉलर में बदल जाती हैं। एसिंक क्रॉलिंग, पॉज़ और रिज़्यूम, प्रॉक्सी रोटेशन, स्ट्रीमिंग, और वे सभी
00:03:46मिश्रित सत्र। जो चीजें आप आमतौर पर बाद में जोड़ते हैं, वे पहले से ही वहाँ हैं। Scrapling केवल एक और
00:03:53पार्सर नहीं है। यह स्क्रैपिंग स्टैक को बदल देता है। रिक्वेस्ट्स, ब्यूटीफुल सूप, प्लेराइट, रिट्राई लॉजिक, प्रॉक्सी हेल्पर्स,
00:04:00एक वर्कफ़्लो के साथ स्पाइडर कोड। Scrapling यह नहीं कह रहा है कि ब्यूटीफुल सूप बेकार है और यह नहीं कह रहा है कि
00:04:06प्लेराइट या स्क्रैपी मर चुके हैं। ब्यूटीफुल सूप और रिक्वेस्ट्स अभी भी सरल पेजों के लिए बहुत अच्छे हैं। यह आसान है,
00:04:13यह पढ़ने योग्य है और हर कोई इसे समझता है, लेकिन यह आपको किसी भी प्रकार की स्टील्थ नहीं देता है। यह आपको
00:04:20एडेप्टिव सेलेक्टर नहीं देता है और यह जावास्क्रिप्ट को रेंडर नहीं करता है। और बड़ी पार्सिंग नौकरियों के लिए, यह
00:04:26वास्तविक बाधा बन सकता है। अब, स्क्रैपी शक्तिशाली है। यदि आप सीरियस क्रॉलिंग
00:04:31इंफ्रास्ट्रक्चर बना रहे हैं, तो स्क्रैपी अभी भी कुछ सम्मान का हकदार है, लेकिन स्क्रैपी का मतलब अक्सर सेटिंग्स, पाइपलाइन, मिडलवेयर,
00:04:36एक्सटेंशन, और बहुत अधिक सेटअप है। प्लेराइट और सेलेनियम तब बहुत अच्छे होते हैं जब आपको एक वास्तविक ब्राउज़र की आवश्यकता होती है।
00:04:42कभी-कभी पेज को बस जावास्क्रिप्ट की आवश्यकता होती है। इसके अलावा कोई रास्ता नहीं है। लेकिन ब्राउज़र भारी होते हैं। वे
00:04:48कच्चे HTTP की तुलना में धीमे होते हैं और वे अधिक मेमोरी का उपयोग करते हैं। और फिर, वे अभी भी टूटे हुए
00:04:54सेलेक्टर की समस्या को ठीक नहीं करते हैं। वे पेज चलाते हैं। वे यह नहीं समझते हैं कि आपका स्क्रैपर क्या निकालने का इरादा रखता था। तो Scrapling के साथ,
00:05:01आप जब हो सके तेज़ फेचिंग का उपयोग कर सकते हैं, जब आवश्यकता हो तो स्टील्थ, जब पेज
00:05:06को आवश्यकता हो तो ब्राउज़र रेंडरिंग का उपयोग करें और एडेप्टिव पार्सिंग का उपयोग करें। तो एक छोटा फ्रंट-एंड परिवर्तन सब कुछ नहीं उड़ाता है। अब, यह सब
00:05:12यह नहीं है कि Scrapling में कोई समस्या नहीं है, है ना? यदि आप डेटा डोम स्तर के संरक्षण,
00:05:17उन्नत फिंगरप्रिंटिंग, या आक्रामक दर सीमाओं से निपट रहे हैं, तो आपको अभी भी अच्छे प्रॉक्सी की आवश्यकता हो सकती है। तो Scrapling
00:05:23मदद कर सकता है, लेकिन यह आपको अदृश्य नहीं बनाता है। डायनामिक फेचिंग का मतलब अतिरिक्त ब्राउज़र सेटअप भी हो सकता है। यह
00:05:29बस एक समझौता है जब जावास्क्रिप्ट रेंडरिंग शामिल होती है। यहाँ इन सबके लिए सोचने वाली बात है।
00:05:34Scrapling कोशिश करने लायक है यदि आप वास्तविक स्क्रैपिंग का काम करते हैं, विशेष रूप से यदि आप डेटा पाइपलाइन बना रहे हैं,
00:05:41आपके पास RAG जॉब्स, AI एजेंट, या कुछ भी है जिसे टारगेट साइट बदलने के बाद भी चलते रहना चाहिए। इसका
00:05:47उपयोग करने का सबसे मजबूत कारण यह नहीं है कि यह स्क्रैपिंग को संभव बनाता है। हमारे पास पहले से ही ऐसे टूल हैं जो
00:05:53वास्तव में ऐसा कर सकते हैं, है ना? सबसे मजबूत कारण यह है कि यह रखरखाव को कम करता है। अब, मैं शायद
00:05:59इसे छोड़ दूँगा यदि आपके पास वास्तव में एक छोटी स्क्रिप्ट है, ठीक है? रिक्वेस्ट्स और ब्यूटीफुल सूप काम कर देंगे,
00:06:04ठीक है? यदि आप इस तरह के कोडिंग टूल का आनंद लेते हैं, तो BetterStack चैनल को सब्सक्राइब करना सुनिश्चित करें। हम आपको अगले वीडियो में देखेंगे।
Community Posts
No posts yet. Be the first to write about this video!
Write about this video