Guest User

Cdsboy's Mal Genre Scraper

a guest
Aug 16th, 2010
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1. import urllib
  2. import json
  3. import sys
  4.  
  5. def getGenres(username):
  6.   genres = {}
  7.  
  8.   f = urllib.urlopen('http://mal-api.com/animelist/%s' % username)
  9.   list = json.loads(f.read())
  10.  
  11.   for anime in list[u'anime']:
  12.     n = urllib.urlopen('http://mal-api.com/anime/%d' % anime[u'id'])
  13.     info = json.loads(n.read())
  14.     for genre in info[u'genres']:
  15.       if not genre in genres:
  16.         genres[genre] = 1
  17.       else:
  18.         genres[genre] += 1
  19.   return genres
  20.  
  21. def sortGenres(genres):
  22.   import operator
  23.   return sorted(genres.iteritems(), key=operator.itemgetter(1))[::-1]
  24.  
  25. def printGenres(genres):
  26.   sorted_genres = sortGenres(genres)
  27.  
  28.   for item in sorted_genres:
  29.     print '%s: %d' % item
  30.  
  31. def saveGenres(genres, path):
  32.   sorted_genres = sortGenres(genres)
  33.  
  34.   with open(path, 'w') as f:
  35.     for item in sorted_genres:
  36.       f.write('%s: %d\n' % item)
  37.  
  38. if __name__ == '__main__':
  39.   if len(sys.argv) == 1:
  40.     print 'Pass the username to check as an arguement.'
  41.     print 'Optional: Pass as output file like -o=output.txt before the username'
  42.   else:
  43.     for arg in sys.argv:
  44.       if arg.startswith('-o'):
  45.         path = arg.split('=')[1]
  46.         saveGenres(getGenres(sys.argv[-1]), path)
  47.         sys.exit()
  48.     printGenres(getGenres(sys.argv[-1]))
Advertisement
Add Comment
Please, Sign In to add comment