एक पायथन छवि खुरचनी आपके प्रोग्रामिंग कौशल को तेज करने के लिए सिर्फ एक उपकरण नहीं है। आप इसका उपयोग मशीन लर्निंग प्रोजेक्ट के लिए छवियों के स्रोत के लिए भी कर सकते हैं, या साइट थंबनेल जेनरेट कर सकते हैं। जबकि समान कार्य करने के अन्य तरीके भी हो सकते हैं, आपके द्वारा स्वयं बनाए गए टूल का उपयोग करके आपके नियंत्रण को कोई भी हरा नहीं सकता है।
पायथन और ब्यूटीफुलसूप लाइब्रेरी का उपयोग करके किसी भी वेबसाइट से छवियों को परिमार्जन करना सीखें।
छवि स्क्रैपिंग कानूनी है?
पसंद करना अधिक सामान्यीकृत वेब स्क्रैपिंग, छवि स्क्रैपिंग वेबसाइट सामग्री को डाउनलोड करने की एक विधि है। यह अवैध नहीं है, लेकिन कुछ नियम और सर्वोत्तम प्रथाएं हैं जिनका आपको पालन करना चाहिए। सबसे पहले, आपको किसी वेबसाइट को स्क्रैप करने से बचना चाहिए यदि वह स्पष्ट रूप से कहती है कि वह आपको नहीं चाहता है। आप इसे ढूंढकर पता लगा सकते हैं a /robots.txt लक्ष्य साइट पर फ़ाइल।
अधिकांश वेबसाइटें वेब क्रॉलिंग की अनुमति देती हैं क्योंकि वे चाहते हैं कि खोज इंजन उनकी सामग्री को अनुक्रमित करें। आप ऐसी वेबसाइटों को स्क्रैप कर सकते हैं क्योंकि उनकी छवियां सार्वजनिक रूप से उपलब्ध हैं।
हालांकि, सिर्फ इसलिए कि आप एक छवि डाउनलोड कर सकते हैं, इसका मतलब यह नहीं है कि आप इसका उपयोग कर सकते हैं जैसे कि यह आपकी अपनी थी। अधिकांश वेबसाइटें अपनी छवियों को लाइसेंस देती हैं ताकि आप उन्हें फिर से प्रकाशित न कर सकें या अन्य तरीकों से उनका पुन: उपयोग न कर सकें। हमेशा मान लें कि जब तक कोई विशिष्ट छूट न हो, आप छवियों का पुन: उपयोग नहीं कर सकते।
पायथन पैकेज सेट अप
शुरू करने से पहले आपको कुछ पैकेज इंस्टॉल करने होंगे। यदि आपके कंप्यूटर पर पायथन स्थापित नहीं है, तो अधिकारी पर जाएँ python.org नवीनतम संस्करण को डाउनलोड और इंस्टॉल करने के लिए वेबसाइट।
इसके बाद, अपने टर्मिनल को अपने प्रोजेक्ट फ़ोल्डर में खोलें और एक पायथन आभासी वातावरण सक्रिय करें अपनी निर्भरताओं को अलग करने के लिए।
अंत में, स्थापित करें अनुरोध तथा सुंदर सूप पाइप का उपयोग कर पैकेज:
पाइप bs4 अनुरोध स्थापित करें
पायथन के साथ छवि स्क्रैपिंग
इस छवि स्क्रैपिंग ट्यूटोरियल के लिए, आप इसका उपयोग करेंगे अनुरोध लक्ष्य छवियों वाले वेब पेज को लाने के लिए पुस्तकालय। फिर आप उस वेबसाइट से प्रत्युत्तर पास करेंगे सुंदर सूप से सभी छवि लिंक पतों को हथियाने के लिए आईएमजी टैग। फिर आप छवियों को डाउनलोड करने के लिए प्रत्येक छवि फ़ाइल को एक फ़ोल्डर में लिखेंगे।
पायथन के सुंदर सूप के साथ छवि URL कैसे प्राप्त करें
अब आगे बढ़ें और अपने प्रोजेक्ट रूट फोल्डर में एक पायथन फाइल बनाएं। सुनिश्चित करें कि आप संलग्न करें .py फ़ाइल नाम के लिए एक्सटेंशन।
इस ट्यूटोरियल में प्रत्येक कोड स्निपेट पिछले एक से जारी है।
के साथ पायथन फ़ाइल खोलें कोई भी अच्छा कोड संपादक और वेब पेज का अनुरोध करने के लिए निम्नलिखित कोड का उपयोग करें:
आयात अनुरोध
यूआरएल = "इमेजसाइटयूआरएल" # इसे वेबसाइट के URL से बदलें
getURL = request.get (URL, शीर्षलेख = {"उपयोगकर्ता-एजेंट": "मोज़िला/5.0"})
प्रिंट (getURL.status_code)
यदि उपरोक्त प्रोग्राम 200 प्रतिक्रिया कोड आउटपुट करता है, तो अनुरोध सफल रहा। अन्यथा, आप यह सुनिश्चित करना चाहेंगे कि आपका नेटवर्क कनेक्शन स्थिर है। साथ ही, सुनिश्चित करें कि आपने एक मान्य URL प्रदान किया है।
अब उपयोग करें सुंदर सूप की सहायता से वेब पेज की सामग्री को पढ़ने के लिए html_पार्सर:
से बीएस4 आयात सुंदर सूप
सूप = सुंदर सूप (getURL.text, 'html.parser')
छवियां = सूप.find_all ('आईएमजी')
प्रिंट (छवियां)
यह कोड वस्तुओं की एक सूची बनाता है, प्रत्येक वेब पेज से एक छवि का प्रतिनिधित्व करता है। हालाँकि, आपको इस डेटा से जो चाहिए वह प्रत्येक छवि का पाठ है एसआरसी विशेषता।
प्रत्येक से स्रोत निकालने के लिए आईएमजी उपनाम:
छवि स्रोत = []
के लिये छवि में इमेजिस:
imageSources.append (image.get('src'))
प्रिंट (छवि स्रोत)
अपना कोड फिर से चलाएँ, और छवि पते अब एक नई सूची में दिखाई देने चाहिए (छवि स्रोत). आपने लक्ष्य वेब पेज से प्रत्येक छवि स्रोत को सफलतापूर्वक निकाला है।
पायथन के साथ छवियों को कैसे बचाएं
सबसे पहले, अपने प्रोजेक्ट रूट डायरेक्टरी में एक डाउनलोड डेस्टिनेशन फोल्डर बनाएं और उसे नाम दें इमेजिस.
छवियों को सफलतापूर्वक डाउनलोड करने के लिए पायथन के लिए, उनके पथ पूर्ण पूर्ण URL होने चाहिए। दूसरे शब्दों में, उन्हें शामिल करने की आवश्यकता है " http://" या " https://" उपसर्ग, साथ ही वेबसाइट का पूरा डोमेन। यदि वेब पेज सापेक्ष URL का उपयोग करके अपनी छवियों का संदर्भ देता है, तो आपको उन्हें निरपेक्ष URL में बदलने की आवश्यकता होगी।
आसान स्थिति में, जब URL पूर्ण होता है, तो डाउनलोड शुरू करना पहले निकाले गए स्रोतों से प्रत्येक छवि का अनुरोध करने का मामला है:
के लिये छवि में छवि स्रोत:
जाले = request.get (छवि)
open('images/' + image.split('/')[-1], 'wb').लिखें (webs.content)
image.split('/')[-1] कीवर्ड प्रत्येक फ़ॉरवर्ड-स्लैश (/) पर छवि लिंक को विभाजित करता है। फिर यह अंतिम तत्व से छवि फ़ाइल नाम (किसी भी एक्सटेंशन सहित) को पुनः प्राप्त करता है।
ध्यान रखें कि, दुर्लभ मामलों में, छवि फ़ाइल नामों में टकराव हो सकता है, जिसके परिणामस्वरूप डाउनलोड ओवरराइट हो सकता है। इस उदाहरण के विस्तार के रूप में इस समस्या के समाधान तलाशने के लिए स्वतंत्र महसूस करें।
संपूर्ण URL काफी जटिल हो सकते हैं, जिनमें बहुत से किनारे के मामले शामिल हैं। सौभाग्य से, इसमें एक उपयोगी तरीका है request.compat पैकेज कहा जाता है urljoin. यह विधि एक पूर्ण URL लौटाती है, एक आधार URL और एक URL दिया जाता है जो सापेक्ष हो सकता है। यह आपको उन मूल्यों को हल करने की अनुमति देता है जो आपको मिलेंगे href तथा एसआरसी गुण।
अंतिम कोड इस तरह दिखता है:
से बीएस4 आयात सुंदर सूप
यूआरएल = "इमेजसाइटयूआरएल" # इसे वेबसाइट के URL से बदलें
getURL = request.get (URL, शीर्षलेख = {"उपयोगकर्ता-एजेंट": "मोज़िला/5.0"})
सूप = सुंदर सूप (getURL.text, 'html.parser')छवियां = सूप.find_all ('आईएमजी')
हल किए गए URL = []के लिये छवि में इमेजिस:
src = image.get ('src')
ResolvedURLs.append (requests.compat.urljoin (URL, src))
के लिये छवि में हल किए गए URL:
जाले = request.get (छवि)
open('images/' + image.split('/')[-1], 'wb').लिखें (webs.content)
छवि डेटा की कमी कभी न करें
एक मॉडल को प्रशिक्षित करने के लिए छवियों की अपर्याप्त मात्रा के कारण कई छवि पहचान परियोजनाएं एक ईंट की दीवार से टकराती हैं। लेकिन आप अपने डेटा भंडार को बढ़ावा देने के लिए वेबसाइटों से छवियों को हमेशा परिमार्जन कर सकते हैं। और शुक्र है, पायथन एक शक्तिशाली छवि खुरचनी है जिसे आप बिना कीमत के डर के लगातार उपयोग कर सकते हैं।
यदि आप वेब से अन्य प्रकार के डेटा प्राप्त करने में रुचि रखते हैं, तो आप यह जानना चाहेंगे कि सामान्य वेब स्क्रैपिंग के लिए पायथन का उपयोग कैसे करें।