दिलचस्प पोस्ट
ListViewItem एक ListView की चौड़ाई तक नहीं फैल जाएगा dc.js – चार्ट समूह रेंडर के लिए सुनना जावा स्विंग खाली JFrame आ रहा है? iPhone ऐप में स्थानीय नोटिफिकेशन कैसे बनाएं ऑफसेट मान का उपयोग कर समयक्षेत्र संक्षिप्त करें व्यू मॉोडल्स के बीच पैरामीटर पास करना सी # कैसे माउस बटन के नीचे लूप कैसे किया जाता है मैं कब कोष्ठक का उपयोग करता हूं और कब नहीं करता? स्वीफ्ट में क्लोजर से बचें कैसे एक पूर्ण MySQL डाटाबेस अक्षर और यूटीएफ -8 को कोलेशन परिवर्तित करें? क्या अनंत जनरेटर के लिए कोई अभिव्यक्ति है? PHP में बड़ी संख्या में कार्य करना PHP का उपयोग कर MySQL डाटाबेस में आईपी एड्रेस भंडारण पायथन भारित रैंडम Wix पूरे पेड़ के लिए एकल घटक आईडी उत्पन्न करता है

अजगर का उपयोग करते हुए HTML पृष्ठ स्रोत से छवि फ़ाइल डाउनलोड करें?

मैं एक खुरचक लिख रहा हूं जो सभी छवि फ़ाइलों को एक HTML पृष्ठ से डाउनलोड करता है और उन्हें एक विशिष्ट फ़ोल्डर में सहेजता है। सभी छवियाँ HTML पृष्ठ का हिस्सा हैं।

वेब के समाधान से एकत्रित समाधान "अजगर का उपयोग करते हुए HTML पृष्ठ स्रोत से छवि फ़ाइल डाउनलोड करें?"

दिए गए URL से सभी छवियों को डाउनलोड करने के लिए यहां कुछ कोड है, और उन्हें निर्दिष्ट आउटपुट फ़ोल्डर में सहेजें। आप इसे अपनी आवश्यकताओं के लिए संशोधित कर सकते हैं।

""" dumpimages.py Downloads all the images on the supplied URL, and saves them to the specified output file ("/test/" by default) Usage: python dumpimages.py http://example.com/ [output] """ from BeautifulSoup import BeautifulSoup as bs import urlparse from urllib2 import urlopen from urllib import urlretrieve import os import sys def main(url, out_folder="/test/"): """Downloads all the images at 'url' to /test/""" soup = bs(urlopen(url)) parsed = list(urlparse.urlparse(url)) for image in soup.findAll("img"): print "Image: %(src)s" % image filename = image["src"].split("/")[-1] parsed[2] = image["src"] outpath = os.path.join(out_folder, filename) if image["src"].lower().startswith("http"): urlretrieve(image["src"], outpath) else: urlretrieve(urlparse.urlunparse(parsed), outpath) def _usage(): print "usage: python dumpimages.py http://example.com [outpath]" if __name__ == "__main__": url = sys.argv[-1] out_folder = "/test/" if not url.lower().startswith("http"): out_folder = sys.argv[-1] url = sys.argv[-2] if not url.lower().startswith("http"): _usage() sys.exit(-1) main(url, out_folder) 

संपादित करें: अब आप आउटपुट फ़ोल्डर को निर्दिष्ट कर सकते हैं।

रयान का समाधान अच्छा है, लेकिन विफल हो जाता है यदि छवि स्रोत यूआरएल पूर्ण यूआरएल या कुछ भी जो मुख्य पेज यूआरएल से सम्मिलित होने पर अच्छा परिणाम नहीं देते हैं। urljoin निरपेक्ष बनाम सापेक्ष यूआरएल को पहचानता है, इस प्रकार के साथ मध्य में लूप को बदलें:

 for image in soup.findAll("img"): print "Image: %(src)s" % image image_url = urlparse.urljoin(url, image['src']) filename = image["src"].split("/")[-1] outpath = os.path.join(out_folder, filename) urlretrieve(image_url, outpath) 

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

और यह एक छवि डाउनलोड करने के लिए कार्य है:

 def download_photo(self, img_url, filename): file_path = "%s%s" % (DOWNLOADED_IMAGE_PATH, filename) downloaded_image = file(file_path, "wb") image_on_web = urllib.urlopen(img_url) while True: buf = image_on_web.read(65536) if len(buf) == 0: break downloaded_image.write(buf) downloaded_image.close() image_on_web.close() return file_path 

सभी आईएमजी टैग (ओवरराइड do_img) निकालने के लिए htmlib का उपयोग करें, फिर सभी छवियों को डाउनलोड करने के लिए urllib2 का उपयोग करें।

यदि अनुरोध को प्राधिकरण की आवश्यकता है तो यह एक देखें:

 r_img = requests.get(img_url, auth=(username, password)) f = open('000000.jpg','wb') f.write(r_img.content) f.close()