1. 程式人生 > >Python 獲取新浪微博的熱門話題 (API)

Python 獲取新浪微博的熱門話題 (API)

Code:

#!/usr/bin/python 
# -*- coding: utf-8 -*-

'''
Created on 2014-06-27
@author: guaguastd
@name: sinaWeiboHotTrend.py
'''

import json
from sinaWeiboLogin import sinaWeiboLogin
    
# get weibo_api to access sina api
sinaWeiboApi = sinaWeiboLogin()

# get sinaWeiboTrend
from sinaWeiboTrend import trendClass
trends = trendClass(sinaWeiboApi)

# get sinaWeiboTrend by hourly, by daily, by weekly
while 1:
    while True:
        choice = raw_input("\ninput choice to get sinaWeiboTrend (1 means hourly, 2 means daily, 3 means weekly, 0 to quit):")
        if choice.isdigit():
            choice = int(choice)
            if choice == 0 or choice == 1 or choice == 2 or choice == 3 :
                break
            else:
                print 'input error, should input int number among 0,1,2,3, try again!'
            
        else:
            print 'input error, should input int number, please try again!'
            
    if choice == 0:
        print 'Succssfully exit!\r'
        break
    elif choice == 1:
        print 'Hourly sinaWeiboTrend are as follow:\r'
        hourly_trends = trends.hourly_new_trend()
        print json.dumps(hourly_trends, indent=1)
    elif choice == 2:
        print 'Daily sinaWeiboTrend are as follow:\r'
        daily_trends = trends.daily_new_trend()
        print json.dumps(daily_trends, indent=1)
    elif choice == 3:
        print 'Weekly sinaWeiboTrend are as follow:\r'
        weekly_trends = trends.weekly_new_trend()
        print json.dumps(weekly_trends, indent=1)
    else:
        print 'Input error, try again!\r'

RESULT:
input choice to get sinaWeiboTrend (1 means hourly, 2 means daily, 3 means weekly, 0 to quit):1
Hourly sinaWeiboTrend are as follow:
{
 "trends": {
  "2014-07-06 08:16": [
   {
    "query": "\u6797\u5999\u53ef", 
    "amount": "26088", 
    "name": "\u6797\u5999\u53ef", 
    "delta": "26088"
   }, 
   {
    "query": "\u8d1d\u513ffeynman", 
    "amount": "24442", 
    "name": "\u8d1d\u513ffeynman", 
    "delta": "24442"
   }, 
   {
    "query": "\u5434\u901f\u73b2", 
    "amount": "22423", 
    "name": "\u5434\u901f\u73b2", 
    "delta": "22423"
   }, 
   {
    "query": "\u8a00\u627f\u65ed", 
    "amount": "21956", 
    "name": "\u8a00\u627f\u65ed", 
    "delta": "21956"
   }, 
   {
    "query": "\u5434\u5988", 
    "amount": "21533", 
    "name": "\u5434\u5988", 
    "delta": "21533"
   }, 
   {
    "query": "\u591a\u59887788", 
    "amount": "21314", 
    "name": "\u591a\u59887788", 
    "delta": "21314"
   }, 
   {
    "query": "\u52a0\u6cb9\u5434\u4ea6\u51e1", 
    "amount": "21051", 
    "name": "\u52a0\u6cb9\u5434\u4ea6\u51e1", 
    "delta": "21051"
   }, 
   {
    "query": "\u5305\u5b50\u59b9", 
    "amount": "20939", 
    "name": "\u5305\u5b50\u59b9", 
    "delta": "20939"
   }, 
   {
    "query": "\u7537\u795e\u9e7f\u6657\u91cd\u8fd4\u5feb\u672c", 
    "amount": "20570", 
    "name": "\u7537\u795e\u9e7f\u6657\u91cd\u8fd4\u5feb\u672c", 
    "delta": "20570"
   }, 
   {
    "query": "\u8377\u5170 \u54e5\u65af\u8fbe\u9ece\u52a0", 
    "amount": "20033", 
    "name": "\u8377\u5170 \u54e5\u65af\u8fbe\u9ece\u52a0", 
    "delta": "20033"
   }
  ]
 }, 
 "as_of": 1404605804
}

input choice to get sinaWeiboTrend (1 means hourly, 2 means daily, 3 means weekly, 0 to quit):2
Daily sinaWeiboTrend are as follow:
{
 "trends": {
  "2014-07-06 08:23": [
   {
    "query": "\u6797\u5999\u53ef", 
    "amount": "26434", 
    "name": "\u6797\u5999\u53ef", 
    "delta": "26434"
   }, 
   {
    "query": "\u8d1d\u513ffeynman", 
    "amount": "24677", 
    "name": "\u8d1d\u513ffeynman", 
    "delta": "24677"
   }, 
   {
    "query": "\u5434\u901f\u73b2", 
    "amount": "22716", 
    "name": "\u5434\u901f\u73b2", 
    "delta": "22716"
   }, 
   {
    "query": "\u8a00\u627f\u65ed", 
    "amount": "22315", 
    "name": "\u8a00\u627f\u65ed", 
    "delta": "22315"
   }, 
   {
    "query": "\u8377\u5170 \u54e5\u65af\u8fbe\u9ece\u52a0", 
    "amount": "22162", 
    "name": "\u8377\u5170 \u54e5\u65af\u8fbe\u9ece\u52a0", 
    "delta": "22162"
   }, 
   {
    "query": "\u5434\u5988", 
    "amount": "21776", 
    "name": "\u5434\u5988", 
    "delta": "21776"
   }, 
   {
    "query": "\u52a0\u6cb9\u5434\u4ea6\u51e1", 
    "amount": "21389", 
    "name": "\u52a0\u6cb9\u5434\u4ea6\u51e1", 
    "delta": "21389"
   }, 
   {
    "query": "\u5305\u5b50\u59b9", 
    "amount": "21232", 
    "name": "\u5305\u5b50\u59b9", 
    "delta": "21232"
   }, 
   {
    "query": "\u53e4\u4e3d\u7c73\u5a1c", 
    "amount": "19406", 
    "name": "\u53e4\u4e3d\u7c73\u5a1c", 
    "delta": "19406"
   }, 
   {
    "query": "\u91d1\u661f", 
    "amount": "19130", 
    "name": "\u91d1\u661f", 
    "delta": "19130"
   }
  ]
 }, 
 "as_of": 1404606238
}

input choice to get sinaWeiboTrend (1 means hourly, 2 means daily, 3 means weekly, 0 to quit):3
Weekly sinaWeiboTrend are as follow:
{
 "trends": {
  "2014-07-06 08:24": [
   {
    "query": "\u6797\u5999\u53ef", 
    "amount": "26434", 
    "name": "\u6797\u5999\u53ef", 
    "delta": "26434"
   }, 
   {
    "query": "\u8d1d\u513ffeynman", 
    "amount": "24677", 
    "name": "\u8d1d\u513ffeynman", 
    "delta": "24677"
   }, 
   {
    "query": "\u5434\u901f\u73b2", 
    "amount": "22716", 
    "name": "\u5434\u901f\u73b2", 
    "delta": "22716"
   }, 
   {
    "query": "\u8a00\u627f\u65ed", 
    "amount": "22315", 
    "name": "\u8a00\u627f\u65ed", 
    "delta": "22315"
   }, 
   {
    "query": "\u8377\u5170 \u54e5\u65af\u8fbe\u9ece\u52a0", 
    "amount": "22162", 
    "name": "\u8377\u5170 \u54e5\u65af\u8fbe\u9ece\u52a0", 
    "delta": "22162"
   }, 
   {
    "query": "\u5434\u5988", 
    "amount": "21776", 
    "name": "\u5434\u5988", 
    "delta": "21776"
   }, 
   {
    "query": "\u52a0\u6cb9\u5434\u4ea6\u51e1", 
    "amount": "21389", 
    "name": "\u52a0\u6cb9\u5434\u4ea6\u51e1", 
    "delta": "21389"
   }, 
   {
    "query": "\u5305\u5b50\u59b9", 
    "amount": "21232", 
    "name": "\u5305\u5b50\u59b9", 
    "delta": "21232"
   }, 
   {
    "query": "\u53e4\u4e3d\u7c73\u5a1c", 
    "amount": "19406", 
    "name": "\u53e4\u4e3d\u7c73\u5a1c", 
    "delta": "19406"
   }, 
   {
    "query": "\u91d1\u661f", 
    "amount": "19130", 
    "name": "\u91d1\u661f", 
    "delta": "19130"
   }
  ]
 }, 
 "as_of": 1404606244
}

input choice to get sinaWeiboTrend (1 means hourly, 2 means daily, 3 means weekly, 0 to quit):