热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python:新浪微博API初试

{想在微博上抓点数据进行分析,费了一天多的时间,才终于找到点头绪,整理一下。}目录:一注册创建应用获取认证和授权二新浪微博pythonsdk下载和安装三简




{想在微博上抓点数据进行分析,费了一天多的时间,才终于找到点头绪,整理一下。}


 目录:


一 注册创建应用获取认证和授权


二 新浪微博python sdk 下载和安装


三 简单Demo获取用户关注好友并统计性别比例


 


一 注册创建应用获取认证和授权


要想使用新浪的API获取数据,首先需要获得认证和授权(其实就是App Key 和 App Secret这两个的值),而这个貌似必须要创建应用才能获得,即使你并不想真的开发应用,只是想爬些数据而已。


1 申请成为开发者


1.1 打开新浪开放平台首页,点击【管理中心】



 


1.2  进入开发者信息页面,点击【现在就去完善】



 


1.3 按照流程填写基本信息、进行邮箱验证之后,就可以创建应用了,如果只是爬点数据的话并不需要完善所有信息提交审核



 


 


 


2  创建应用获取App Key和 App Secret


2.1 如果已经成功申请为开发者后,再打开新浪开放平台开发页 ,如下图所示,可以点击【创建应用】


 


 


2.2  这时会弹出一个页面让你选择创建应用的类型,参考别的博客的意见和自己的经验(我最初创建的是站内应用,但是发现没有填回调页的地方),建议选择【其他】


 


 


2.3  填写应用的基本信息,点击【创建】即可。因为只是用新浪的API抓些数据,因此信息都是随便写的。



 


2.4  创建应用后,所有的应用将会出现在【管理中心】-【我的应用】里,点击应用名,在应用信息的基本信息中,将会看到所需要的App Key 和App Secret:



 


2.5  编辑回调页(callback url),在应用信息的高级信息里编辑。似乎只要是能正常打开公开访问的页面(注意一定要可以正常打开公开访问)都可以,我参考的一篇博客回调页写的就是百度首页(http://www.baidu.com),但我用百度页调程序时却报错,最后将回调页改成新浪默认的就可以了,所以还是建议使用新浪提供的默认回调页https://api.weibo.com/oauth2/default.html



到了这一步应用生成就算完成了,有了App Key,App Secret 和 回调页 这三个值,就可以使用新浪API进行开发了


 


二 新浪微博python sdk 下载和安装


下载官方建议的SDK http://michaelliao.github.io/sinaweibopy/


下载完成后将里面的weibo.py复制到你的应用程序同一目录下,或者复制到 lib/site-package下。这样你的应用就可以调用sdk了。(此方法我未验证,我是直接安装的)


也可以直接在线安装,官网提供的方法是使用pip工具安装该工具包:pip install sinaweibopy


我的python中只有easy_install,查了一下资料说 pip 比 easy_install 更好一点,就顺手安装了pip:easy_install pip


然后我又用上面的pip命令安装SDK,但不知为什么一直报错,后来抱着试一试的心态直接用easy_install安装吧:easy_install sinaweibopy


意外的顺利成功!


虽然安装成功,还是又下载了一下SDK包,主要是为了看看都有哪些函数,及其用法。


 


三 简单的Demo 获取用户关注好友并统计性别比例


 


#-*- encoding:utf8 -*-

import webbrowser
import json
from weibo import APIClient

APP_KEY = 'XXXXXX' # your app key
APP_SECRET = 'XXXXXXXXXXXX' # your app secrect
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' # your callback url

client = APIClient(APP_KEY,APP_SECRET,CALLBACK_URL)

# 访问授权页,让用户授权
authorize_url = client.get_authorize_url(redirect_uri = CALLBACK_URL)

#打开浏览器,需手动找到地址栏中URL里的code字段
webbrowser.open(authorize_url)

# 手动输入新浪返回的code
code = raw_input("input the code: ").strip()

# 获得用户授权
request = client.request_access_token(code) # 请求access_token
access_token = request.access_token # 新浪返回的token,类似abc123xyz456
expires_in = request.expires_in # token过期的UNIX时间

print 'Successfully get access_token:',access_token
print 'Successfully get expires_in:',expires_in

client.set_access_token(access_token, expires_in)

# 获取用户所关注的好友,并统计好友性别
screen_name=u"XXX某某某" # 输入该用户昵称,注意本代码的编码是utf8,否则昵称为中文的时候会报错
resFriends = []
nextCursor = -1

while nextCursor != 0:
friends = client.get.friendships__friends(screen_name=screen_name,count=200,cursor=nextCursor)
nextCursor = friends["next_cursor"]
for friend in friends["users"]:
resFriends.append( (friend["screen_name"],friend["gender"]) )


m = 0 # male
f = 0 # female
n = 0 # others
for i in resFriends:
if i[1] == 'm':
m = m+1
elif i[1] == 'f':
f = f+1

else:
n = n+1

print 'The total number of the friends:',len(resFriends)
print 'The number of male friends:',m
print 'The number of famale friends:',f
print 'The number of others:',n


 直接运行该程序,首先会弹出回调页面给出code码,需要手动复制该code码,在python运行界面输入该code码:


 


运行结果如下所示:



 


参考资料


Auth2.0微博应用范例


使用python调用新浪微博API的小经历


使用python进行新浪微博应用开发


使用python sdk 调用sina weibo API(OAuth2.0)


新浪微博API文档


新浪微博错误代码说明




转载请注明出处 http://blog.csdn.net/minenki/article/details/8836293






推荐阅读
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 本文详细介绍了如何正确安装Java EE SDK,并解决在安装过程中可能遇到的问题,特别是关于servlet代码在Apache Tomcat 10中无法运行的情况。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 本文介绍了一个项目中如何在Windows平台上实现多声道音频数据的采集,特别是针对DANTE音频接口的8路立体声音频通道。文章详细描述了使用Windows底层音频API进行音频采集的方法,并提供了一个具体的实现示例。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • Android Studio 安装与配置指南
    本教程详细介绍了如何下载并安装 Android Studio,包括设置 SDK 路径和优化启动性能的方法。通过这些步骤,您可以顺利地开始开发 Android 应用。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • 详细指南:使用IntelliJ IDEA构建多模块Maven项目
    本文在前两篇文章的基础上,进一步指导读者如何在IntelliJ IDEA中创建和配置多模块Maven项目。通过详细的步骤说明,帮助读者掌握项目模块化管理的方法。 ... [详细]
  • js常用方法(1)startWithJava代码varstartsWithfunction(str,regex){if(regexundefined||strundefined|| ... [详细]
author-avatar
纽约纽约MrWaNg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有