新浪微博API的使用Python


本文記錄了用新浪微博官方Python SDK調用API進行開發的流程。

准備工作

申請成為開發者並創建一個應用:

首先要有一個新浪微博的賬號,然后去新浪微博開放平台(http://open.weibo.com/)創建一個應用,具體的步驟官網文檔介紹的非常詳細:在開發者頁面點擊“登錄” -> “創建應用” -> 選擇應用類型(如“網頁應用”)-> 填寫應用信息。

P.S.,應用需要設置一個回調地址(CALL_BACK),可以設定為默認的回調網址:https://api.weibo.com/oauth2/default.html

這一步完成后,將得到三個有用的信息:APP_KEY,APP_SECRET和CALL_BACK,這三個信息在后面編寫程序時將用到。

OAuth2.0授權

微博開放接口的調用,如發微博、關注等,都是需要獲取用戶身份認證的。目前微博開放平台用戶身份鑒權主要采用的是OAuth2.0。官方文檔有非常詳細的說明,了解了授權機制后有助於使用SDK編寫程序的過程。

下載和安裝新浪微博Python SDK

打包下載新浪微博官方Python SDK,網頁中說明了安裝有兩種方式,第一種用命令行工具pip安裝,第二種下載源碼包安裝。

對於第一種安裝方式,pip是Python的包管理工具,可以很方便的安裝Python模塊。安裝成功后,只需在命令行(或linux終端)中執行pip install sinaweibopy,SDK的包sinaweibopy就安裝完畢。測試是否安裝成功,可以在python命令行中輸入:import weibo,如果沒有錯誤提示說明安裝成功。實際上Python SDK主要就是模塊weibo,后面在使用SDK時就是調用該模塊中的函數。

對於第二種方式,需要拷貝下載的源碼到安裝目錄或者配置Python模塊搜索的Path中。


讀寫微博接口程序

下面就可以調用微博API寫微博操作程序了,下面簡單介紹一個抓取微博數據的程序。

# _*_ coding: utf-8 _*_
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from weibo import APIClient
import json
import webbrowser
import io

APP_KEY = '' ## 填寫應用程序的信息
APP_SECRET = ''
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html'

client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
url = client.get_authorize_url()
# TODO: redirect to url

webbrowser.open_new(url)
#print url
# obtain url code:
code = raw_input("input the code: ").strip()
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,類似abc123xyz456
expires_in = r.expires_in # token過期的UNIX時間:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4
# TODO: 在此可保存access token
client.set_access_token(access_token, expires_in)

res = client.statuses.public_timeline.get(count=200) ##返回最新的200條熱門微博
#res  = client.statuses.user_timeline.get()  ##返回作者發布的歷史微博
#res = client.statuses.friends_timeline.ids.get() ##返回好友發布的微博id
#res=client.emotions.get()

a = json.dumps(res, ensure_ascii = False,indent = 2)
fout = io.open('test','w',encoding='utf-8')
fout.write(a)

運行程序,自動打開回調頁,將網址內的“code”拷貝至程序,程序執行成功后,就可以得到微博數據了。

這里實際是調用新浪微博提供的API,具體參考官方文檔

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM