urllib और python के माध्यम से चित्र डाउनलोड करना

| | | | | | | | | | | | | | | | | | |

इसलिए मैं एक पायथन स्क्रिप्ट बनाने की कोशिश कर रहा हूं जो वेबकॉमिक्स डाउनलोड करती है और उन्हें मेरे डेस्कटॉप पर एक फ़ोल्डर में रखती है। मुझे यहां पर कुछ ऐसे ही प्रोग्राम मिले हैं जो कुछ ऐसा ही करते हैं, लेकिन मुझे जो चाहिए वह बिल्कुल नहीं है। जो मैंने सबसे अधिक समान पाया वह यहीं है (http: //bytes.com/topic/python/answers/850927-problem-using-urllib-download-images)। मैंने इस कोड का उपयोग करने की कोशिश की:

>>> आयात urllib >>> छवि = urllib.URLopener() >>> image.retrieve("http://www.gunnerkrigg.com//comics/00000001.jpg";"00000001.jpg") ("00000001.jpg", <httplib.HTTPसंदेश उदाहरण 0x1457a80>)  

फिर मैंने "00000001.jpg" फ़ाइल के लिए अपने कंप्यूटर की खोज की, लेकिन मुझे केवल इसकी कैश्ड तस्वीर मिली। मुझे यह भी यकीन नहीं है कि इसने फ़ाइल को मेरे कंप्यूटर पर सहेजा है। एक बार जब मैं समझ गया कि फ़ाइल को कैसे डाउनलोड किया जाए, तो मुझे लगता है कि मुझे पता है कि बाकी को कैसे संभालना है। अनिवार्य रूप से केवल लूप का उपयोग करें और स्ट्रिंग को "00000000" पर विभाजित करें। "jpg" और "00000000" को सबसे बड़ी संख्या तक बढ़ाएं, जिसे मुझे किसी तरह निर्धारित करना होगा। ऐसा करने के सर्वोत्तम तरीके या फ़ाइल को सही तरीके से डाउनलोड करने के बारे में कोई सुझाव?

धन्यवाद!

6/15/10 संपादित करें

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

 आयात urllib आयात ओएस कॉमिक काउंटर = लेन (os.listdir ("/ फ़ाइल")) +1 # अगली कॉमिक त्रुटि पर डाउनलोड शुरू करने के लिए फ़ोल्डर में फ़ाइलों की संख्या पढ़ता हैकाउंट = 0 डीईएफ़ डाउनलोड_कॉमिक (यूआरएल, कॉमिकनाम): """ url के रूप में एक कॉमिक डाउनलोड करें = http://www.example.com कॉमिकनाम = "00000000.jpg" """ image=urllib.URLopener() image.retrieve(url,comicName) # कॉमिक काउंटर के दौरान URL पर कॉमिकनाम डाउनलोड करें <= 1000: # सबसे सुंदर समाधान नहीं os.chdir("/file") # सेट जहां फाइलें डाउनलोड करने की कोशिश करने के लिए: यदि कॉमिक काउंटर < 10: # को 10 ^ एन सेगमेंट में तोड़ने की जरूरत है क्योंकि कॉमिक नाम का एक सेट है शून्य के बाद एक संख्या कॉमिकनंबर=str("0000000"+str(comicCounter)) # स्ट्रिंग जिसमें आठ अंकों का कॉमिक नंबर होता है, कॉमिकनाम=str(comicNumber+.jpg") # स्ट्रिंग जिसमें फ़ाइल नाम होता है url=str("http:/ /www.gu nnerkrigg.com//comics/"+comicName) # कॉमिक कॉमिक के लिए URL बनाता है काउंटर+ = 1 # अगले कॉमिक पर जाने के लिए कॉमिक काउंटर को बढ़ाता है, डाउनलोड से पहले होना चाहिए अगर डाउनलोड एक अपवाद उठाता है download_comic(url,comicName ) # कॉमिक प्रिंट यूआरएल डाउनलोड करने के लिए ऊपर परिभाषित फ़ंक्शन का उपयोग करता है यदि 10 <= कॉमिक काउंटर < 100: कॉमिकनंबर=str("000000"+str(comicCounter)) कॉमिकनाम=str(comicNumber+.jpg") url=str("http://www.gunnerkrigg.com//comics/"+comicName) कॉमिककाउंटर+=1 download_comic(url,comicName) अगर 100 <= कॉमिक काउंटर < 1000: कॉमिकनंबर = स्ट्र ("00000" + स्ट्र (कॉमिक काउंटर)) कॉमिकनाम = स्ट्र (कॉमिकनंबर +। जेपीजी") url = str ("http://www.gunnerkrigg.com//comics/"+comicName) कॉमिक काउंटर + = 1 download_comic(url,comicName) प्रिंट url अन्य: # यदि इस श्रेणी के बाहर कोई भी संख्या IOError को छोड़कर बाहर दिखाई देती है तो प्रोग्राम को छोड़ दें: # urllib 404 त्रुटि के लिए IOError उठाता है, जब कॉमिक मौजूद नहीं है errorCount+=1 # इसमें एक जोड़ें त्रुटि गणना अगर त्रुटि गणना>3: # यदि डाउनलोड करने के दौरान तीन से अधिक त्रुटियां होती हैं, तो प्रोग्राम को छोड़ दें अन्यथा: प्रिंट स्ट्र ("कॉमिक" + "" + स्ट्र (कॉमिक काउंटर) + "" + "मौजूद नहीं है") # अन्यथा कहते हैं कि निश्चित कॉमिक नंबर "मौजूद नहीं है" प्रिंट "सभी कॉमिक्स अप टू डेट हैं" # प्रिंट यदि सभी कॉमिक्स डाउनलोड हो गए हैं