सेमल्ट: पायथन के साथ वेब स्क्रैपिंग

क्या आप उन भयानक क्षणों में से एक हैं जब आपके पास वाई-फाई नहीं है। यदि हां, तो आपने महसूस किया है कि आप अपने कंप्यूटर पर क्या करते हैं, यह नेट पर निर्भर करता है। सरासर आदत से बाहर, आप अपने ईमेल की जाँच कर रहे हैं, अपने दोस्त की Instagram तस्वीरें देखने के साथ ही उनके ट्वीट्स को पढ़ने जाएगा।

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

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

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

मॉड्यूल विकसित किया गया था क्योंकि पायथन के 'urllib2' मॉड्यूल में कई जटिलताएं हैं, जिनका उपयोग करना मुश्किल है। यह वास्तव में स्थापित करना काफी आसान है। आपको बस इतना करना है कि कमांड लाइन से पाइप इंस्टॉल अनुरोध चलाएं। फिर आपको यह सुनिश्चित करने के लिए एक सरल परीक्षण करने की आवश्यकता है कि मॉड्यूल ने सही तरीके से स्थापित किया है। ऐसा करने के लिए, आप इंटरेक्टिव शेल में '>>> आयात अनुरोध' टाइप कर सकते हैं। यदि कोई त्रुटि संदेश दिखाई नहीं देता है, तो इंस्टॉल सफल रहा।

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

प्रतिक्रिया ऑब्जेक्ट में आमतौर पर एक स्थिति कोड विशेषता होती है जिसका उपयोग आप यह पता लगाने के लिए कर सकते हैं कि आपका डाउनलोड सफल था या नहीं। इसी प्रकार, आप किसी प्रतिक्रिया ऑब्जेक्ट पर 'raise_for_status () विधि को कॉल कर सकते हैं। यदि फ़ाइल को डाउनलोड करने में कोई त्रुटि हुई है तो यह एक अपवाद को बढ़ाता है। यह सुनिश्चित करने का एक शानदार तरीका है कि खराब डाउनलोड की घटना में एक कार्यक्रम बंद हो जाता है।

यहां से, आप मानक कार्यों, 'खुला' (और 'लिखो ()' का उपयोग करके अपनी हार्ड ड्राइव पर अपनी डाउनलोड की गई वेब फ़ाइल को सहेज सकते हैं। हालाँकि, पाठ के यूनिकोड एन्कोडिंग को बनाए रखने के लिए, आपको द्विआधारी डेटा के साथ पाठ डेटा स्थानापन्न करना होगा।

किसी फ़ाइल में डेटा लिखने के लिए, आप 'iter_content ()' विधि के साथ 'लूप के लिए' का उपयोग कर सकते हैं। यह विधि लूप के माध्यम से प्रत्येक पुनरावृत्ति पर डेटा के बल्ब लौटाती है। प्रत्येक बल्क बाइट्स में है, और आपको यह निर्दिष्ट करना होगा कि प्रत्येक बाइट में कितने बाइट होंगे। एक बार जब आप लेखन कर लेते हैं, तो फ़ाइल बंद करने के लिए 'बंद करें' () को कॉल करें और अब आपका काम समाप्त हो गया है।

mass gmail