前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python调用微博API获取微博内容

Python调用微博API获取微博内容

作者头像
py3study
修改2023-09-20 19:55:08
3.4K0
修改2023-09-20 19:55:08
举报
文章被收录于专栏:python3python3

一:获取app-key 和 app-secret

    使用自己的微博账号登录微博开放平台,在微博开放中心下“创建应用”创建一个应用,应用信息那些随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret

二:设置授权回调页

    在“微博开放平台”的“管理中心”找到刚才创建的应用,点开这个应用,点开左边“应用信息”栏,会看见“App key”和“App Secret”的字样,这两个东西是要在后面程序中使用的。然后在“应用信息”下的“高级信息”点击“编辑”按钮,将“授权回调页面”设置为:https://api.weibo.com/oauth2/default.html,将“取消授权回调页”也设置为:https://api.weibo.com/oauth2/default.html。

三:安装微博 python SDK

有两种安装方式:

1:http://github.liaoxuefeng.com/sinaweibopy/下载新浪微博SDK

2:python有个简单的安装方式:直接在命令行下键入:

代码语言:javascript
复制
sudo pip install sinaweibopy

四:实例验证,获取当前登录用户及其所关注(授权)用户的最新微博

这里需要注意的是在浏览器弹出一个页面,要先点击“授权”(这里进行的OAuth 2认证,我理解为就是用户访问我的应用后将页面导向新浪服务器然后用户输入信息到新浪服务器后授权给我的应用访问用户数据,这里我将的微博授权给下面的程序了),授权后浏览器中的URL类似:https://api.weibo.com/oauth2/default.html?code=2024222384d5dc88316d21675259d73a将code后面那个复制到控制端,程序需要读入2024222384d5dc88316d21675259d73a这个数据 

注意:如果想获取别的信息,只需修改

代码语言:javascript
复制
statuses = client.statuses__friends_timeline()['statuses']

中的 statuses__friends_timeline即可

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser        #python内置的包

APP_KEY = 'xxxxxxxx'#注意替换这里为自己申请的App信息
APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html'#回调授权页面

#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授权页面的url,利用webbrowser打开这个url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)

#获取code=后面的内容
print '输入url中code后面的内容后按回车键:'
code = raw_input()
#code = your.web.framework.request.get('code')
#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

# 设置得到的access_token
client.set_access_token(access_token, expires_in)

#可以打印下看看里面都有什么东西
statuses = client.statuses__friends_timeline()['statuses'] #获取当前登录用户以及所关注用户(已授权)的微博</span>

length = len(statuses)
print length
#输出了部分信息
for i in range(0,length):
    print u'昵称:'+statuses[i]['user']['screen_name']
    print u'简介:'+statuses[i]['user']['description']
    print u'位置:'+statuses[i]['user']['location']
    print u'微博:'+statuses[i]['text']

结果如下(截取部分数据):

以下为我的关注用户的微博:

拿上边代码为例,这里我们获取的信息有:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:获取app-key 和 app-secret
  • 二:设置授权回调页
  • 三:安装微博 python SDK
  • 四:实例验证,获取当前登录用户及其所关注(授权)用户的最新微博
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档