python抓取微博数据_技术入门 | python利用微博api获取数据

技术入门 | python利用微博api获取数据

文 | thewords

这也是跳票许久的分享。在写之前发现目前比较少公开的第三方api,有些还停止维护,所以在一轮筛选后选择了微博api进行实践。

01 申请开发者权限

1) 进入微博开放平台,完成开发者认证

具体链接:

http://open.weibo.com/index.php

完成示意:

1

2) 获取App Key、AppSecret

进入微连接中的移动应用,申请新应用;在应用信息中的基本信息获取App Key、AppSecret

具体链接:

http://open.weibo.com/development/mobile

完成示意:

1

02 获取access_token

1) 下载并安装微博python sdk(sinaweibopy)

安装说明:

http://github.liaoxuefeng.com/sinaweibopy/

2) 利用sinaweibopy获取access_token

示例代码:

from weibo import APIClient

import webbrowser

APP_KEY = '0123456789‘ #获取的App Key

APP_SECRET = '9e3484b8fb24f9260af0e47b097f18b7' #获取的AppSecret

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()

webbrowser.open_new(url) #打开默认浏览器获取code参数

print '输入url中code后面的内容后按回车键:'

code = raw_input()

浏览器打开的链接示意:

https://api.weibo.com/oauth2/default.html?code=61e30dfb3568d66e418b4c418bf9d750

输入参数code的值 r = client.request_access_token(code)

access_token = r.access_token

expires_in = r.expires_in

client.set_access_token(access_token, expires_in)

03 通过api 文档进行数据获取

api文档链接

http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI

1) 以statuses/home_timeline 接口作为例子进行数据获取

了解获取数据需要的请求参数

1

2) 授权用户uid可在用户首页的链接获取,".com/"之后就是uid

示意链接:

http://weibo.com/0123456789/profile

3) 每个接口的“/”换成“.”,用get方法传递参数 r = client.statuses.home_timeline.get(uid = 0123456789)

4) 阅读返回json数据的结构,进行输出结果处理

1

示意代码: for st in r.statuses:

print st.text

最后返回的数据示意如下:

1

需要说明的是,本文使用的App Key、AppSecret为测试使用,对于使用时长、使用频率都有所限制。实际用于生产环境,建议进行认证。

在成功利用api获取数据后,接下来就应该存放到数据库,然后设置定时机制,在一定的api限制条件下进行数据获取。或者直接存储到相应的文件(txt,csv)便于进一步分析。这些都取决于数据的使用场景。

题图来源:@Free-Photos

图片授权基于:CC0协议

1

本文来源于网络,版权归作者所有

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值