Jeffrey Cross
Jeffrey Cross

क्रैकिंग AJAX

परंपरागत रूप से, एक वेब स्पाइडर सिस्टम को एक सर्वर से कनेक्ट करने, HTML डॉक्यूमेंट को खींचने, अन्य HTTP यूआरएल के एंकर लिंक के लिए डॉक्यूमेंट को स्कैन करने और सभी खोजे गए URL पर समान प्रक्रिया को दोहराने का काम सौंपा जाता है। प्रत्येक URL पारंपरिक वेब साइट की एक अलग स्थिति का प्रतिनिधित्व करता है। एक AJAX अनुप्रयोग में, पृष्ठ की अधिकांश सामग्री HTML दस्तावेज़ में समाहित नहीं है, लेकिन गतिशील रूप से पृष्ठ लोड पर जावास्क्रिप्ट द्वारा सम्मिलित की जाती है। इसके अलावा, लंगर लिंक अन्य दस्तावेजों की ओर इशारा करने के बजाय जावास्क्रिप्ट घटनाओं को ट्रिगर कर सकते हैं। एप्लिकेशन की स्थिति जावास्क्रिप्ट घटनाओं की श्रृंखला द्वारा परिभाषित की जाती है जो पृष्ठ लोड के बाद चालू हो गए थे। इसका परिणाम यह है कि पारंपरिक मकड़ी केवल साइट की सामग्री का एक छोटा सा हिस्सा ही देख पाती है और एप्लिकेशन की किसी भी राज्य की जानकारी को सूचीबद्ध करने में असमर्थ है।

तो हम समस्या को ठीक करने के बारे में कैसे सोचते हैं?

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

श्रीराज शाह का पेपर, क्रॉलिंग अजाक्स-चालित वेब 2.0 एप्लिकेशन, वेब क्रॉलिंग के लिए "इवेंट-संचालित" दृष्टिकोण का वर्णन करने का एक अच्छा काम करता है। यह वेब क्रॉलिंग सॉफ़्टवेयर का एक उत्कृष्ट वर्ग बनाने के बारे में है, जो डायनामिक, जावास्क्रिप्ट-संचालित डोम कंटेंट को पुनः प्राप्त करने, निष्पादित करने और पार्स करने में सक्षम है, बहुत कुछ ऐसा है जैसे मानव पूर्ण रूप से प्रदर्शित वेब ब्राउज़र को संचालित करेगा।

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

  1. अजाक्स को जोड़ने के साथ जावास्क्रिप्ट विश्लेषण और व्याख्या
  2. डोम इवेंट हैंडलिंग और डिस्पैचिंग
  3. गतिशील डोम सामग्री निष्कर्षण

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

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

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

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

क्रॉबर - सर्वर-साइड हेडलेस फ़ायरफ़ॉक्स वाटर - रूबी क्रॉलिंग अजाक्स-चालित वेब 2.0 एप्लिकेशन (पीडीएफ) में ब्राउज़र रिमोट कंट्रोल

शेयर

एक टिप्पणी छोड़