Python Urllib.Request और urlopen() का उपयोग करके इंटरनेट एक्सेस
⚡ स्मार्ट सारांश
urllib मानक है Python इंटरनेट डेटा तक पहुँचने के लिए मॉड्यूल, जो प्रोग्रामों को खोलने की अनुमति देता है URLयह फ़ंक्शन HTML, JSON या बाइनरी सामग्री को पुनः प्राप्त करता है। urllib.request.urlopen() फ़ंक्शन एक वेब पते से कनेक्ट होता है और सर्वर प्रतिक्रिया को सीधे पढ़ता है। Python.

नीचे दिए गए अनुभाग बताते हैं कि urllib क्या है और इसे कैसे खोलें। URL और इसके HTML को पढ़ना, त्रुटियों को कैसे संभालना है, फ़ाइलें डाउनलोड करना और urllib और requests लाइब्रेरी के बीच चयन करना सीखना।
यूआरएललिब क्या है?
urllib एक है Python वह मॉड्यूल जिसका उपयोग खोलने के लिए किया जा सकता है URLयह कार्यों और वर्गों को परिभाषित करता है ताकि सहायता मिल सके। URL कार्रवाई।
- Pythonआप इंटरनेट से XML, HTML और JSON जैसे डेटा को एक्सेस और रिट्रीव भी कर सकते हैं, और फिर सीधे इस डेटा के साथ काम कर सकते हैं। नीचे दिए गए अनुभागों में, हम देखेंगे कि वेब से डेटा कैसे रिट्रीव किया जाता है। उदाहरण के लिए, यहाँ हम एक का उपयोग करते हैं। Guru99 वीडियो URLइसे एक्सेस करें Pythonऔर इस HTML फ़ाइल को प्रिंट करें URL.
urllib पैकेज में कई मॉड्यूल शामिल हैं: खोलने के लिए urllib.request URLs, urllib.error उन अपवादों के लिए जो अनुरोध उत्पन्न कर सकते हैं, urllib.parse निर्माण और पार्सिंग के लिए। URLs और urllib.robotparser का उपयोग robots.txt फ़ाइलों को पढ़ने के लिए किया जाता है।
कैसे खोलें URL Urllib का उपयोग करना
इंटरनेट डेटा से कनेक्ट करने के लिए कोड चलाने से पहले, हमें इसे इम्पोर्ट करना होगा। URL लाइब्रेरी मॉड्यूल, या "यूआरएललिब"।
- urllib आयात करें
- अपना मुख्य कार्य परिभाषित करें
- वेरिएबल webUrl घोषित करें
- फिर urllib लाइब्रेरी पर urlopen फ़ंक्शन को कॉल करें।
- RSI URL हम जो खोल रहे हैं वह है Guru99 ट्यूटोरियल पर YouTube
- इसके बाद, हम परिणाम कोड प्रिंट करते हैं।
- परिणाम कोड वेबयूआरएल वेरिएबल पर गेटकोड फ़ंक्शन को कॉल करके प्राप्त किया जाता है।
- हम इसे एक स्ट्रिंग में परिवर्तित करते हैं, ताकि इसे हमारी स्ट्रिंग "परिणाम कोड" के साथ जोड़ा जा सके।
- यह एक सामान्य HTTP कोड "200" होगा, जो दर्शाता है कि HTTP अनुरोध सफलतापूर्वक संसाधित हो गया है।
किसी स्रोत से HTML फ़ाइल कैसे प्राप्त करें URL in Python
आप read() फ़ंक्शन का उपयोग करके HTML फ़ाइल को भी पढ़ सकते हैं। Pythonजब आप कोड चलाएंगे, तो HTML फ़ाइल कंसोल में दिखाई देगी।
- webUrl वेरिएबल पर read() फ़ंक्शन को कॉल करें
- read() विधि आपको डेटा फ़ाइलों की सामग्री को पढ़ने की अनुमति देती है।
- पूरी सामग्री पढ़ें URL डेटा नामक एक वेरिएबल में
- कोड चलाएं और यह डेटा को HTML प्रारूप में प्रिंट करेगा।
यहाँ पूरा कोड है:
Python 2 उदाहरण
# # read the data from the URL and print it # import urllib2 def main(): # open a connection to a URL using urllib2 webUrl = urllib2.urlopen("https://www.youtube.com/user/guru99com") #get the result code and print it print "result code: " + str(webUrl.getcode()) # read the data from the URL and print it data = webUrl.read() print data if __name__ == "__main__": main()
Python 3 उदाहरण
# # read the data from the URL and print it # import urllib.request # open a connection to a URL using urllib webUrl = urllib.request.urlopen('https://www.youtube.com/user/guru99com') #get the result code and print it print ("result code: " + str(webUrl.getcode())) # read the data from the URL and print it data = webUrl.read() print (data)
urllib त्रुटियों को कैसे संभालें: URLत्रुटि और HTTP त्रुटि
अनुरोध हमेशा सफल नहीं होता। जब कुछ गड़बड़ होती है, तो urllib डेटा वापस करने के बजाय एक अपवाद उत्पन्न करता है, इसलिए इन त्रुटियों को संभालना महत्वपूर्ण है। urllib.error मॉड्यूल दो मुख्य अपवाद वर्गों को परिभाषित करता है।
- एचटीटीपी एरर यह तब उत्पन्न होता है जब सर्वर त्रुटि स्थिति कोड लौटाता है, जैसे कि 404 नॉट फाउंड या 500 इंटरनल सर्वर एरर। इसमें स्थिति कोड और प्रतिक्रिया निकाय दोनों शामिल होते हैं।
- URLत्रुटि यह त्रुटि तब उत्पन्न होती है जब सर्वर तक बिल्कुल भी नहीं पहुंचा जा सकता, उदाहरण के लिए गलत डोमेन नाम या इंटरनेट कनेक्शन न होने के कारण। इसमें एक कारण विशेषता होती है जो विफलता का स्पष्टीकरण देती है।
क्योंकि HTTPError एक उपवर्ग है URLत्रुटि: हमेशा पहले HTTPError को पकड़ें ताकि प्रत्येक त्रुटि प्रकार को अलग-अलग संभाला जा सके:
from urllib.request import urlopen from urllib.error import HTTPError, URLError try: response = urlopen("https://www.guru99.com/no-such-page.html") data = response.read() except HTTPError as error: print("HTTP error:", error.code) except URLError as error: print("URL error:", error.reason)
इन अपवादों को संभालने से आपका प्रोग्राम क्रैश होने से बचता है और आपको समस्या को लॉग करने, अनुरोध को पुनः प्रयास करने या कैश किए गए डेटा पर वापस जाने की सुविधा मिलती है।
किसी वेबसाइट से फ़ाइल कैसे डाउनलोड करें URL urllib का उपयोग करना
एक पढ़ना URL मेमोरी में डेटा सेव करना छोटी पेजों के लिए तो ठीक है, लेकिन इमेज, पीडीएफ डॉक्यूमेंट या डेटासेट के लिए रिस्पॉन्स को सीधे डिस्क पर सेव करना ज्यादा आसान होता है। urllib.request मॉड्यूल इसके लिए दो आसान तरीके प्रदान करता है।
urlretrieve() फ़ंक्शन एक फ़ाइल डाउनलोड करता है। URL एक ही पंक्ति में सीधे स्थानीय फ़ाइल में:
from urllib.request import urlretrieve urlretrieve("https://www.python.org/static/img/python-logo.png", "logo.png")
अधिक नियंत्रण के लिए, इसे खोलें URL और बाइट्स को स्वयं लिखें। स्थानीय फ़ाइल को बाइनरी मोड में खोलें क्योंकि urlopen() बाइट्स लौटाता है, टेक्स्ट नहीं:
from urllib.request import urlopen with urlopen("https://example.com/data.zip") as response: with open("data.zip", "wb") as file: file.write(response.read())
बहुत बड़ी फ़ाइलों के लिए, response.read(8192) का उपयोग करके लूप में पढ़ें और लिखें ताकि पूरी फ़ाइल एक साथ मेमोरी में कभी न रहे।
urllib बनाम requests लाइब्रेरी Python
urllib इसका हिस्सा है Python यह एक मानक लाइब्रेरी है, इसलिए इसे इंस्टॉल करने की आवश्यकता नहीं है। तृतीय-पक्ष रिक्वेस्ट लाइब्रेरी इसमें अंतर्निहित नहीं है, लेकिन कई डेवलपर रोजमर्रा के HTTP कार्यों के लिए इसे पसंद करते हैं क्योंकि इसका सिंटैक्स छोटा और अधिक पठनीय है।
मुख्य अंतर हैं:
- स्थापना: urllib के साथ आता है Pythonजबकि requests को pip के साथ इंस्टॉल करना होगा।
- डिकोडिंग: urllib कच्चे बाइट्स लौटाता है जिन्हें आपको स्वयं डिकोड करना होता है, जबकि requests टेक्स्ट और JSON को स्वचालित रूप से डिकोड करता है।
- सुविधा: requests कम कोड के साथ सेशन, कुकीज़ और कस्टम हेडर को हैंडल करता है।
- निर्भरता: urllib कुछ भी नहीं जोड़ता है, जबकि requests इसके मूल में urllib3 पर निर्भर करता है।
जब आपको किसी भी प्रकार की निर्भरता की आवश्यकता न हो या केवल एक त्वरित, एक बार का अनुरोध करना हो, तो urllib चुनें। प्रमाणीकरण, सत्र या बार-बार API कॉल से जुड़े बड़े प्रोजेक्ट्स के लिए requests चुनें। दोनों ही समान HTTP अनुरोध भेजते हैं, इसलिए निर्णय सुविधा और कम निर्भरता सूची के बीच का है।


