下面我将为你详细讲解“Python调用新浪微博API项目实践”的完整攻略。
前置要求
- 已注册新浪微博开发者账号,获取开发者权限
- 已创建新浪微博开发者应用,并获取到app_key和app_secret
- 已安装Python开发环境,并安装requests和json模块
步骤1:获取access_token
为了能够调用新浪微博API,首先需要获取access_token。获取access_token的过程如下:
- 构造获取code的URL:
https://api.weibo.com/oauth2/authorize?client_id={app_key}&response_type=code&redirect_uri={callback_url}
(其中,app_key
为应用的app_key,callback_url
为回调URL,需要在应用的控制台中设置) - 打开该URL,用户确认授权后,会跳转到回调URL,并在URL参数中携带
code
- 通过POST请求
https://api.weibo.com/oauth2/access_token
,发送如下参数:client_id
: 应用的app_keyclient_secret
: 应用的app_secretgrant_type
: 固定为authorization_code
code
: 上一步获取到的coderedirect_uri
: 回调URL(与步骤1中的一致)
请求成功后,返回的JSON数据中包含access_token
字段,表示获取到了access_token。
以下是示例代码:
import requests
import json
# 应用的app_key和app_secret,需在控制台中获取
app_key = 'your_app_key'
app_secret = 'your_app_secret'
# 获取code
auth_url = 'https://api.weibo.com/oauth2/authorize?client_id={}&response_type=code&redirect_uri={}'.format(app_key, 'http://localhost/callback')
code = input('请在浏览器中打开以下URL并确认授权后,将浏览器跳转的URL中的code参数复制并粘贴到此处:\n' + auth_url)
# 获取access_token
token_url = 'https://api.weibo.com/oauth2/access_token'
resp = requests.post(token_url, {
'client_id': app_key,
'client_secret': app_secret,
'grant_type': 'authorization_code',
'code': code,
'redirect_uri': 'http://localhost/callback'
})
access_token = json.loads(resp.text)['access_token']
print('access_token:', access_token)
步骤2:调用API
获取到access_token后,就可以调用新浪微博提供的API了。下面以获取用户主页上的微博为例,来说明API的调用过程。
- 构造API的URL:
https://api.weibo.com/2/statuses/user_timeline.json?access_token={access_token}&uid={uid}
(其中,access_token
为获取到的access_token,uid
为需要获取的用户的uid,可在用户主页URL中获取。) - 发送GET请求,获取微博数据
以下是示例代码:
api_url = 'https://api.weibo.com/2/statuses/user_timeline.json'
resp = requests.get(api_url, {
'access_token': access_token,
'uid': '123456789' # 用户的uid,需替换为有效值
})
statuses = json.loads(resp.text)['statuses']
for status in statuses:
print(status['text'])
以上就是调用新浪微博API的完整攻略,希望能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python调用新浪微博API项目实践 - Python技术站