tumblr.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import requests
  2. import simplejson as json
  3. import time
  4. import urllib
  5. import re
  6. from bs4 import BeautifulSoup
  7. import urlparse
  8. import oauth2
  9. blog_uri = "http://api.tumblr.com/v2/blog/"
  10. user_uri = "api.tumblr.com/v2/user/"
  11. consumer_key = "KrSbAc9cYLmIgVAn1D21FjRR97QWsutNMxkPDFBxo8CMWtMk4M"
  12. consumer_secret = "lKWMtL2Lj8zr5pY51PVqT8ugeoG0DjrdgoFewM0QTSyJ12jP8d"
  13. #https://www.tumblr.com/oauth/authorize?oauth_token=R9HvkeqKgPAXjor9V92Zg5BvxMm3kwx0kaGnawVHIU5h6dmOL0
  14. def getUserInfo():
  15. ''' Return user's information. '''
  16. return "getUserInfo()"
  17. def getBlogInfo(user):
  18. ''' Return blogger's blog information. '''
  19. blog_info = blog_uri + user +".tumblr.com/info?api_key="+consumer_key
  20. req = requests.get(blog_info)
  21. jsonlist = json.loads(req.content)
  22. print jsonlist
  23. meta = jsonlist['meta']
  24. response = jsonlist['response']
  25. blog = response['blog']
  26. blog['updated'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(blog['updated']))
  27. return blog
  28. def getTaggedInfo(tag):
  29. ''' Return tags related to blog with certain tag. '''
  30. tagged_uri = "http://api.tumblr.com/v2/tagged?tag="+tag+"&api_key="+consumer_key+"&limit=20"
  31. req = requests.get(tagged_uri)
  32. jsonlist = json.loads(req.content)
  33. tags = []
  34. meta = jsonlist['meta']
  35. body = jsonlist['response']
  36. for blog in body:
  37. for data in blog:
  38. if data == "tags":
  39. #print blog[data]
  40. for i in blog[data]:
  41. m = re.match("(.*)(s*)s(t*)t(a*)a(r*)r(b*)b(u*)u(c*)c(k*)k(.*)", i.lower())
  42. if not m:
  43. tags.append(i)
  44. return tags
  45. def getTaggedBlog(tag):
  46. ''' Return the tagged blogs's captions or post.'''
  47. tagged_uri = "http://api.tumblr.com/v2/tagged?tag="+tag+"&api_key="+consumer_key+"&limit=2"
  48. req = requests.get(tagged_uri)
  49. jsonlist = json.loads(req.content)
  50. meta = jsonlist['meta']
  51. body = jsonlist['response']
  52. tagtext = []
  53. for blog in body:
  54. print "####"
  55. for data in blog:
  56. #post
  57. if data == "body":
  58. if blog[data]:
  59. #print blog[data]
  60. soup = BeautifulSoup(blog[data])
  61. text = soup.get_text()
  62. tagtext.append(text)
  63. #an image
  64. if data == "caption":
  65. if blog[data]:
  66. #print blog[data]
  67. soup = BeautifulSoup(blog[data])
  68. text = soup.get_text()
  69. tagtext.append(text)
  70. return tagtext