Wersja PDF - Aule Blog
Transkrypt
Wersja PDF - Aule Blog
Pobrano z http://aule.pythonanywhere.com/ Ściągniecie grafik z albumu picasy przy pomocy kanału RSS 25 marca 2016 popełniony przez aule Całkiem niedawno było o ściąganiu grafik ze strony. Tak jak pisałem to co wrzuciłem ostatnio nie działa na wszystkie strony między innymi na Picase od Google. Z racji iż potrzebowałem ściągnąć trochę zdjęć i nie były one mi potrzebne w oryginalnym rozmiarze postanowiłem stworzyć coś swojego. Z pomocą przyszedł mi https://github.com/anoopjt/Picasa-Downloader/blob/ master/picasa_downloader.py Na początku myślałem żeby korzystać tylko i wyłącznie z tego kodu. Stwierdziłem jednak że jest on napisany z wykorzystaniem bs3 a ja spróbuje zrobić to wykorzystując bs4 oraz zamiast samemu robić progres bara wykorzystać bibliotekę tqdm. Oto i kod: from from from from from from urllib2 import urlopen urlparse import urlsplit os.path import basename, join, exists os import mkdir bs4 import BeautifulSoup tqdm import tqdm def get_rss_url(url): urlsplit(url).netloc == "picasaweb.google.com" y = urlopen(url).read() soup = BeautifulSoup(y,'xml') for link in soup.findAll('link'): if link.has_attr('rel'): if link['rel']=="alternate": url = link['href'] return url def download_photos(url, location): if not exists(location): mkdir(location) feed_content = urlopen(url).read() tags = BeautifulSoup(feed_content, 'lxml').findAll('media:content') count = len(tags) print "%d pictures found!" % count for x in tqdm(tags): y = "%(url)s" %x filename = y.split('/')[-1] img = urlopen(x["url"]).read() fname = join(location, filename) output = open(fname,'wb') output.write(img) output.close() if __name__ == '__main__': url = raw_input('Enter the Picasa web album url : ') name_album = raw_input('Enter name of folder for album : ') url= get_rss_url(url) download_photos(url, name_album)