Download XKCD Comics With Python

in python •  5 years ago 

xkcd.png

Sarcasm, math, and language + requests



Here's a tiny script to download all the XKCD comics. Create a directory called comics next to the script and it'll throw them all in and name them accordingly.


Made originally for r/tinycode as a personal challenge. Challenge complete in 572 Bytes (not including requests get).

from requests import get

n = 1
while True:
    if n == 404:
        n += 1
    w = f'https://xkcd.com/{n}/info.0.json'
    r = get(w)
    if r.status_code == 404:
        break
    d = r.json()
    n = d['num']
    t = d['safe_title']
    u = d['img']
    print(f'{n}: {t}')
    if u.endswith('png'):
        e = 'png'
    if u.endswith('jpg'):
        e = 'jpg'
    if u.endswith('gif'):
        e = 'gif'
    x = 'comics/{}-{}.{}'.format(n, t.replace(' ', '_').replace('/', '-'), e)
    with open(x, "wb") as f:
        c = get(u)
        f.write(c.content)
    n += 1



Thanks for reading. x

Resources

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!