View Single Post
Bruker Google image API,lager det så random bilder blir tatt ut etter søk på "beer"
Et bilde er en øl i koden,så et bilde blir fjernet i hver loop.
Mikser dette inn med tekst til 99 bottles of beer.

Bruker IPython Notebook,for og gjøre output mer interessant.
Kan anbefale og se IPython Notebook,
den kan kjøre mye mer enn bare kjøre Python kode F.eks alle Linux kommader,javaScript,bash,HTML,LaTeX,bilder,grafer i alle former.

Her er noen tester med 5 øl, beer_1, beer_2, beer_3, beer_4

Vanlig kode med bilde url lenker som output.

Kode

import os, sys
import time
from urllib import FancyURLopener
import urllib2
import json
import random

class MyOpener(FancyURLopener):
    version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'

def find_beer_images(search_term,myopener,beer_count=50):
    '''Beer images generator'''
    count = 0
    search_term = search_term.replace(' ','%20')
    for beer in range(1, beer_count):
        url = 'https://ajax.googleapis.com/ajax/services/search/images?{}{}&start={}&userip=MyIP&imgsz=small'.\
        format('v=1.0&q=',search_term, random.sample(range(60),1)[0])
        #print url
        request = urllib2.Request(url, None, {'Referer': 'testing'})
        response = urllib2.urlopen(request)
        results = json.load(response)
        data = results['responseData']
        try:
            data_info = data['results']
        except:
            pass
        for myUrl in data_info:
            count = count + 1
            yield myUrl['unescapedUrl']
            myopener.retrieve(myUrl['unescapedUrl'],str(count)+'.jpg')

def collect_images(beer_images,number_of_beer):
    beer_lst = []
    for number,image in enumerate(beer_images,1):
        beer_lst.append(image)
        if number == number_of_beer:
            return beer_lst

def bottel_text(beer_lst,number_of_beer):
    for beer_count in range(number_of_beer-1, 0, -1):
       if beer_count > 1:
          print "{0} bottles of beer on the wall {0} bottles of beer.".format(beer_count)
          print '---'
          beer_lst.pop()
          img = '\n'.join(beer_lst)
          print img
          if beer_count > 2:
             beer_text = str(beer_count - 1) + " bottles of beer on the wall."
             beer_text = "{} bottles of beer on the wall.".format(beer_count - 1)
          else:
             beer_text = "1 bottle of beer on the wall."
       elif beer_count == 1:
          print "1 bottle of beer on the wall, 1 bottle of beer."
          last = beer_lst[-1]
          print last
          beer_text = "no more beer on the wall!"
       print '---'
       print "Take one down, pass it around,", beer_text

if __name__ == '__main__':
    myopener = MyOpener()
    search_term = "beer"
    number_of_beer = 6
    beer_images = find_beer_images(search_term,myopener)
    beer_lst = collect_images(beer_images,number_of_beer) #beer lst
    bottel_text(beer_lst,number_of_beer)
Output:

Kode

5 bottles of beer on the wall 5 bottles of beer.
---
http://1.bp.blogspot.com/-f-mCqbfCl5I/TeFGWs-v4XI/AAAAAAAAERY/4Czq2LkaA14/s1600/CoronaBeer2.jpg
http://4.bp.blogspot.com/_uJipGtg5L5Y/TPCYJIlZxqI/AAAAAAAAADU/ezXMnKSZuBA/s1600/Ginger+Beer+Can+Chicken+A+2010-11-17.jpg
http://2.bp.blogspot.com/_eDBIrz51HpI/S_C94ia9wsI/AAAAAAAAAgg/2bnFEXeBH64/s1600/Beer+Wall+Completion.jpg
http://2.bp.blogspot.com/-Q_Rsvcsau4o/TzNKNKehG4I/AAAAAAAACM8/dMIgQPZ8Hd0/s1600/Beer+Bread_0378.jpg
http://1.bp.blogspot.com/-0zHk7Y3GSb0/T7Qd5eMo18I/AAAAAAAACLY/aSvRW9cqQAQ/s1600/craft+beer+taps.jpg
---
Take one down, pass it around, 4 bottles of beer on the wall.
4 bottles of beer on the wall 4 bottles of beer.
---
http://1.bp.blogspot.com/-f-mCqbfCl5I/TeFGWs-v4XI/AAAAAAAAERY/4Czq2LkaA14/s1600/CoronaBeer2.jpg
http://4.bp.blogspot.com/_uJipGtg5L5Y/TPCYJIlZxqI/AAAAAAAAADU/ezXMnKSZuBA/s1600/Ginger+Beer+Can+Chicken+A+2010-11-17.jpg
http://2.bp.blogspot.com/_eDBIrz51HpI/S_C94ia9wsI/AAAAAAAAAgg/2bnFEXeBH64/s1600/Beer+Wall+Completion.jpg
http://2.bp.blogspot.com/-Q_Rsvcsau4o/TzNKNKehG4I/AAAAAAAACM8/dMIgQPZ8Hd0/s1600/Beer+Bread_0378.jpg
---
Take one down, pass it around, 3 bottles of beer on the wall.
3 bottles of beer on the wall 3 bottles of beer.
---
http://1.bp.blogspot.com/-f-mCqbfCl5I/TeFGWs-v4XI/AAAAAAAAERY/4Czq2LkaA14/s1600/CoronaBeer2.jpg
http://4.bp.blogspot.com/_uJipGtg5L5Y/TPCYJIlZxqI/AAAAAAAAADU/ezXMnKSZuBA/s1600/Ginger+Beer+Can+Chicken+A+2010-11-17.jpg
http://2.bp.blogspot.com/_eDBIrz51HpI/S_C94ia9wsI/AAAAAAAAAgg/2bnFEXeBH64/s1600/Beer+Wall+Completion.jpg
---
Take one down, pass it around, 2 bottles of beer on the wall.
2 bottles of beer on the wall 2 bottles of beer.
---
http://1.bp.blogspot.com/-f-mCqbfCl5I/TeFGWs-v4XI/AAAAAAAAERY/4Czq2LkaA14/s1600/CoronaBeer2.jpg
http://4.bp.blogspot.com/_uJipGtg5L5Y/TPCYJIlZxqI/AAAAAAAAADU/ezXMnKSZuBA/s1600/Ginger+Beer+Can+Chicken+A+2010-11-17.jpg
---
Take one down, pass it around, 1 bottle of beer on the wall.
1 bottle of beer on the wall, 1 bottle of beer.
http://4.bp.blogspot.com/_uJipGtg5L5Y/TPCYJIlZxqI/AAAAAAAAADU/ezXMnKSZuBA/s1600/Ginger+Beer+Can+Chicken+A+2010-11-17.jpg
---
Take one down, pass it around, no more beer on the wall!
Sist endret av snippsat; 22. august 2014 kl. 20:56.