Last active
June 15, 2020 08:50
-
-
Save riyafa/c29ce156718d8d45f957917cbf8cecb6 to your computer and use it in GitHub Desktop.
[Python2] Download weekly Bing wallpapers to a given folder. Can run it as a cron job everyday
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json, os | |
import os | |
import time | |
import urllib | |
import urllib2 | |
from os.path import expanduser | |
from datetime import datetime | |
home_site = "http://bing.com" | |
weekly_wallpapers_url = home_site + "/HPImageArchive.aspx?format=js&idx=0&n=8&mkt=en-US" | |
def get_weekly_wallpapers(): | |
wallpapers_folder = os.path.join( expanduser('~'), 'Pictures/BingWallpapers' ) | |
is_force = False | |
if not os.path.exists(wallpapers_folder): | |
os.makedirs(wallpapers_folder) | |
try: | |
r = urllib2.urlopen( weekly_wallpapers_url ) | |
weekly_wallpapers = json.load(r)['images'] | |
print "\n[%s]" % (datetime.now()) | |
print "There are %s wallpapers on the feed" % (len(weekly_wallpapers)) | |
for wallpaper in weekly_wallpapers: | |
download_url = wallpaper['url'] | |
if home_site not in download_url: | |
download_url = home_site + download_url | |
file_name = wallpaper['startdate'] + "_" + wallpaper['title'] + '.jpg' | |
wallpaper_path = os.path.join(wallpapers_folder, file_name ) | |
#Wallpaper doesn't exist | |
if os.path.isfile(wallpaper_path) is False or is_force is True: | |
print "Downloading " + wallpaper['copyright'].encode('utf-8') | |
urllib.urlretrieve ( download_url, wallpaper_path ) | |
print wallpaper_path | |
print "All weekly wallpapers are downloaded successfully" | |
except Exception, e: | |
print "error" | |
print e | |
time.sleep(1) | |
else: | |
pass | |
finally: | |
pass | |
get_weekly_wallpapers() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment