Pubblicato da: Pedro | novembre 5, 2007

Script: Nasa Image of the Day

Avete presente quelle belle immagini che la NASA pubblica giornalmente sul suo sito? Ho scritto un breve script per scaricarle automaticamente partendo dal feed RSS.

Più che uno script è un insieme assurdo di workaround e molto probabilmente se qualcuno conoscesse il python (non come me che tiro a caso) troverebbe il modo di scriverlo con metà delle righe.

Dato che la NASA non ha uno schema fisso nella gestione delle pagine, è probabile che qualche giorno lo script non vada o scarichi immagini o file a caso. No warranty!

Comunque sia, se qualcuno lo trovasse utile copi queste righe in un file, ad esempio niod.py :

from xml.dom import minidom
import string
import xml.parsers.expat
import urllib
import re
import time
import datetime

rssf = urllib.urlopen(“http://www.nasa.gov/rss/image_of_the_day.rss”)
rss = minidom.parseString(rssf.read())
guid = rss.getElementsByTagName(‘guid’)
f = urllib.urlopen(guid[0].firstChild.data)
data = f.read()
data = data.split(‘”‘)

pattern = re.compile(“full”);
for line in data:
a_match = pattern.search( line )
if (a_match):
imageurl = line

dates = datetime.date.today()
print “http://www.nasa.gov”+imageurl
image = urllib.urlopen(“http://www.nasa.gov”+imageurl)
out_file = open(“/tmp/wallpaper.jpg”,”w”)
out_file.write(image.read())
out_file.close()

Lo script salva la nostra immagine come /tmp/wallpaper.jpg ma potete ovviamente modificare il comportamento.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Categorie

%d blogger hanno fatto clic su Mi Piace per questo: