View difference between Paste ID: eeYKzek1 and
SHOW:
|
|
- or go back to the newest paste.
1 | #!/usr/bin/env python2 | |
2 | ||
3 | ||
4 | import os | |
5 | import re | |
6 | import urllib | |
7 | ||
8 | # Aggiungi i codici che trovi in nell'indirizzo della pagina dell'oggetto | |
9 | # come elementi della variabile %codes | |
10 | # (es: http://www.amazon.it/Call-Duty-Modern-Warfare-3/dp/B005DEZRA6/ | |
11 | # codice=B005DEZRA6) | |
12 | codes = [ | |
13 | 'B0002UYA8Q', # Summit [Edizione: Germania] | |
14 | 'B000268AZE', # Reunion Cumbre [Edizione: Germania] | |
15 | 'B000BYAD20', # Complete Studio Recordings [Edizione: Francia] | |
16 | 'B00004TY56', # Bossa Antigua [Edizione: Francia] | |
17 | 'B0012BMMZC', # Getz Meets Mulligan In Hi-Fi [Edizione: Francia] | |
18 | 'B0000365G8', # Sweet & Lowdown [Colonna sonora] | |
19 | ] | |
20 | ||
21 | # Cambia il nome del file come preferisci, ora come ora salva sulla home un | |
22 | # file di "nome AmazonPriceHistory.log" | |
23 | logFilename = os.path.join(os.getenv('HOME'),'AmazonPriceHistory.log') | |
24 | if not os.path.exists(logFilename): | |
25 | with open(logFilename,'w') as fp: fp.write('') | |
26 | ||
27 | ||
28 | def Elaborate(code): | |
29 | p = re.compile(' *<.*(EUR )([^<]*)</b.*') | |
30 | d = re.compile(' *<[^>]*>([^<]*)<span.*>') | |
31 | address = 'http://www.amazon.it/gp/product/%s/' % ( code ) | |
32 | content = urllib.urlopen(address) | |
33 | content = content.read().splitlines() | |
34 | for line in content: | |
35 | if line.count('EUR') and line.count('priceLarge'): | |
36 | largePrice = eval(p.match(line).group(2).replace(',','.')) | |
37 | if line.count("btAsinTitle"): | |
38 | itemName = d.match(line).group(1) | |
39 | with open(logFilename) as fp: | |
40 | fileCont = fp.read().splitlines() | |
41 | for idx in range(len(fileCont)): | |
42 | items = fileCont[idx].split('\t') | |
43 | if items[0] == itemName: | |
44 | items[1] += ',%s' % largePrice | |
45 | fileCont[idx] = '\t'.join(items) | |
46 | break | |
47 | if idx == len(fileCont)-1: | |
48 | fileCont.append('%s\t%s' % (itemName, largePrice)) | |
49 | with open(logFilename, 'w') as fp: | |
50 | fp.write('\n'.join(fileCont)+'\n') | |
51 | print '%s done: %s > %.2f' % (code, itemName, largePrice) | |
52 | ||
53 | if __name__ == '__main__': | |
54 | for ind in codes: | |
55 | Elaborate(ind) | |
56 | ||
57 |