Semalt विशेषज्ञ पाइथन को प्रयोग गरी AJAX वेबसाइट कसरी स्क्रॅप गर्ने भनेर व्याख्या गर्दछ

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

जहाँसम्म, त्यहाँ केहि प्रविधिहरू छन् जुन यस समस्यालाई पार गर्न सकिन्छ:

१. स्वचालित ब्राउजरहरू

तपाईं स्वचालित ब्राउजरहरू प्रयोग गर्न सक्नुहुन्छ जस्तै सेलेनियम वा स्प्ल्याश जुन पूर्ण ब्राउजरहरू हुन् जुन हेडलेस रहन्छ। जहाँसम्म, तिनीहरूलाई सेट अप गर्न जटिल हुन सक्छ, र हामी तल दोस्रो विकल्पमा ध्यान केन्द्रित गर्नेछौं।

२.इन्टसेप्ट AJAX कलहरू

यसमा पृष्ठबाट AJAX कलहरू अवरोध गर्ने प्रयास गर्दै र तिनीहरूलाई पुनः प्ले गर्न वा पुन: उत्पादन गर्ने प्रयास समावेश गर्दछ।

यस लेखमा, हामी ध्यान केन्द्रित गर्नेछौं कसरी AJAX कलहरू समात्न र तिनीहरूलाई अनुरोध लाइब्रेरी र गुगल क्रोम ब्राउजरको उपयोग गरेर तिनीहरूलाई पुनः बजाउने। जे होस् स्क्र्यापी जस्ता फ्रेमवर्कहरूले तपाईंलाई अधिक कुशल समाधान प्रदान गर्न सक्दछ जब यो स्क्र्यापिंगको लागि आउँदछ, यो सबै केसहरूको लागि आवश्यक पर्दैन। AJAX कल ज्यादातर एक एपीआई को विरुद्ध प्रदर्शन गरिन्छ कि एक JSON वस्तु फिर्ता हुनेछ जुन अनुरोध लाइब्रेरी सजिलै ह्यान्डल गर्न सक्दछ।

तपाईंले जान्नुपर्ने पहिलो चीज भनेको AJAX कल पुनः बजाउने प्रयास एक Undocumented एपीआई प्रयोग गर्नु जस्तै हो। तसर्थ, तपाईंले पृष्ठहरू बनाउने सबै कलमा हेर्नु पर्छ। तपाईं साइटमा जान सक्नुहुन्छ, यसका साथ केही समय खेल्नुहोस् र हेर्नुहोस् केही जानकारी कसरी रेन्डर गरियो। तपाइँले प्ले गरिसकेपछि, फिर्ता आउनुहोस् र स्क्र्यापि start सुरु गर्नुहोस्।

हामी विवरणमा जानु भन्दा पहिले, पृष्ठलाई कसरी कार्य गर्दछ भनेर बुझौं। यदि तपाईं राज्य द्वारा स्टोरहरूको पृष्ठ भ्रमण गर्नुहुन्छ भने, कुनै राज्य छान्नुहोस्, र पृष्ठ स्टोरमा जानकारी प्रस्तुत गर्दछ। प्रत्येक पटक जब तपाइँ राज्य चयन गर्नुहुन्छ, वेबसाइटले पुरानोलाई बदल्न नयाँ स्टोरहरू रेन्डर गर्दछ। यो प्रयोग गरेर हासिल गरिएको हो, र AJAX सर्वरमा जानकारीको लागि सोधेर। हाम्रो उद्देश्य अब त्यो कललाई समातेर यसलाई पुनः बजाउने हो।

त्यसो गर्नका लागि तपाईले गर्नु पर्ने भनेको क्रोम ब्राउजर खोल्नु पर्छ DevTools कन्सोल गरिएको र XHR उपमा जानुहोस्। XHR एक ईन्टरफेस हो जुन HTTP र HTTPS अनुरोधहरू प्रदर्शन गर्दछ। यसैले AJAX अनुरोधहरू यहाँ देखाइनेछ। जब तपाईं AJAX कललाई डबल क्लिक गर्नुहुन्छ, तपाईं स्टोरहरूमा धेरै जानकारी पाउनुहुनेछ। तपाईं अनुरोधहरू पूर्वावलोकन गर्न सक्नुहुन्छ।

तपाईं नोट गर्नुहुनेछ कि धेरै डाटा सर्भरमा पठाइएको थियो। तथापि, चिन्ता नलिनुहोस् किनकि यी सबै आवश्यक छैन। तपाईंलाई कुन डेटा चाहिएको छ हेर्नको लागि, तपाईं कन्सोल खोल्न सक्नुहुन्छ र वेबसाइटमा विभिन्न पोष्ट अनुरोधहरू गर्न सक्नुहुन्छ। अब जब तपाईलाई थाहा छ कि कसरी पृष्ठले कार्य गर्दछ र AJAX कल लाई डिसिफर गरेको छ, तपाईं आफ्नो स्क्र्यापर लेख्न सक्नुहुन्छ।

तपाईं सोध्दै हुनुहुन्छ, 'किन एक स्वचालित ब्राउजर प्रयोग नगर्ने?' समाधान सरल छ; सँधै AJAX कलहरू फेरि प्ले गर्न कोसिस गर्नुहोस् स्वचालित ब्राउजर जस्ता धेरै बढी भारी र जटिल चीजहरूको शुरू गर्नु अघि। यो सरल र हल्का छ।

png