Python如何调用新浪api接口的问题

前言:这些天在研究如何调用新浪开放平台的api分析新浪微博用户的数据

成果:成功调用了新浪api获取了用户的一些个人信息和无数条公共微博

不足:新浪开放平台访问有限制,返回的数据着实有限,不足以分析问题,真的要分析问题还是得个人写爬虫

下面是调用新浪开放api的过程:

第一步:按这个做就行

http://www.cnblogs.com/dhsunny/p/3578399.html?utm_source=tuicool&utm_medium=referral

其中有一不那个新浪api测试工具是打不开的,要自己百度

api测试工具打开

第二步:这是是我重点介绍一步,调用新浪api怎么获取数据,总不能在api测试工具上面弄吧,这个时候我采用的是用python

先搭建好python开发环境,具体参考:http://www.imooc.com/learn/397

个人建议在eclipse上面搭建,视频上有教程

下面是调用新浪api的代码:调用的接口是

statuses/public_timeline

这个接口的介绍是:http://open.weibo.com/wiki/2/statuses/public_timeline

代码如下:

#coding:utf-8
from weibo import APIClient
import webbrowser
import MySQLdb
APP_KEY = ‘984793585‘ # app key
APP_SECRET = ‘ab2c926021d5cfbbc75587e67bd05a8c‘ # app secret
CALLBACK_URL = ‘http://weibo.com/muqingcai/home?wvr=5‘# callback url

#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)

#用得到的url到新浪页面访问
url = client.get_authorize_url()
webbrowser.open_new(url)

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

#新浪返回的token,类似abc123xyz456,每天的token不一样
r = client.request_access_token(code)
access_token = r.access_token
expires_in = r.expires_in # token过期的UNIX时间

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

#有了access_token后,可以做任何事情了

#print client.statuses__public_timeline()  
count = 1
s = set([(‘mu‘,‘basketball‘,‘guangzhou‘,‘liuchuanfen‘)])  
def getDataByPublic(count):
    while True:
        if count>=50:
            break
        statuses = client.statuses__public_timeline()[‘statuses‘]  
        length = len(statuses)          
        #输出了部分信息  
        for i in range(0,length):  
            nickName = statuses[i][‘user‘][‘screen_name‘]  
            profile = statuses[i][‘user‘][‘description‘]  
            location = statuses[i][‘user‘][‘location‘]  
            weibo = statuses[i][‘text‘] 
            print u‘昵称:‘+nickName
            print u‘简介:‘+profile
            print u‘位置:‘+location  
            print u‘微博:‘+weibo  
        count += 1    
getDataByPublic(1)

说明:APP_KEY 和APP_SECRET 需要在新浪开放平台上面创建应用才能获得,具体方法看第一步,CALLBACK_URL也要在应用信息的高级信息里面说明,这是回掉地址,就填你微博的首页地址

运行上面程序:会弹出:

输入你的微博账号密码,接着到了微博主页

把code输入到控制台按回车:

即可获得数据,这些数据可以存在数据库,也可以存到本地

时间: 2024-10-13 11:46:51

Python如何调用新浪api接口的问题的相关文章

【Servlet】Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地

这里之所以调用新浪api接口,主要是可以避免我们在本地存放一个ip归属地库, 同时,我们在本地要存放用户的ip,仅仅存放其ip就可以了,无须存放其归属地,节省一个字段. 如下图,写一个带有获取客户端IP地址的网页: 首先,在Eclipse的目录结构如下: 里面除了servlet的支持包之外,就一个.jsp与一个.java. 其中这里用到Servlet3.0,因此web.xml没有任何东西: <?xml version="1.0" encoding="UTF-8"

【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地

本文与<[Servlet]Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地>(点击打开链接)为姊妹篇,只是后端编程语言换成了php. 做出同样的效果,打开页面,得到客户端的ip,并获取利用新浪api接口获取此ip的归属地. 可以看到,在IE6也是相当正常的. 目录结构如下,非常简单,同样就两个文件,其实如果你愿意,写成一个php文件也可以,但是显示层和逻辑业务层还是不混在一起为好吧? 唯一值得注意的是,这两个文件打死也不能一个叫ipGet.php,ipGet.html

获取IP,调用新浪接口获取所在地点的辅助类

1 using System; 2 using System.IO; 3 using System.Net; 4 using System.Text; 5 using System.Web.Script.Serialization; 6 7 namespace IpUtils 8 { 9 public class IpDetail 10 { 11 public String Ret { get; set; } 12 13 public String Start { get; set; } 14

淘宝(新浪)API获取IP地址位置信息

1 package com.parse; 2 3 import java.io.BufferedReader; 4 import java.io.DataOutputStream; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.io.UnsupportedEncodingException; 8 import java.net.HttpURLConnection; 9 import

[Python-MATLAB] 在Python中调用MATLAB的API

可以参考官方的说明文档: http://cn.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for-python.html MATLAB Engine API的使用文档: http://cn.mathworks.com/help/matlab/matlab-engine-for-python.html 原材料: 1.MATLAB 2015a  32位的 2.Python 2.7.13    32位

使用WebRequest对象调用新浪天气预报&lt;转&gt;

// 待请求的地址 string url = "http://www.cnblogs.com"; // 创建 WebRequest 对象,WebRequest 是抽象类,定义了请求的规定, // 可以用于各种请求,例如:Http, Ftp 等等. // HttpWebRequest 是 WebRequest 的派生类,专门用于 Http System.Net.HttpWebRequest request = System.Net.HttpWebRequest.Create(url) a

python 中调用windows系统api操作剪贴版

# -*- coding: utf-8 -*- ''' Created on 2013-11-26 @author: Chengshaoling ''' import win32clipboard as w32 import win32con class OperateClipboard(object): def __init__(self): # print "OperateClipboard" pass def getText(self): w32.OpenClipboard()

【API】新浪天气接口 Beta

新浪天氣接口那是公認的好,可是百度之後發現很簡陋,所以自己寫了工具類,此處幫忙測試下其中的天氣接口,看有哪些地方要改進的. Jar 名称:          NonentityUtil Class 名称:       SinaWeatherUtil,新浪天氣 Util 類 方法名:            getWeatherByCity(String city,int forecastDays),根據城市獲取天氣 輸入參數:         city,城市,拼音或者漢語([BUG]輸入拼音返回的

使用新浪API生成短连接

公司最近需要进行短信推广,需要发送大批量带有连接地址的短信给用户,并且需要统计短信的点击量.因为需要考虑短信成本问题,需要将长连接地址生成比较短的连接.因为公司本身没有短的一级域名,所以考虑到使用第三方的短连接生成器.经过对比选择了新浪短连接生成器. 新浪接口文档地址: http://open.weibo.com/wiki/Short_url/shorten 新浪提供了xml和json两种格式进行生成短连接,这里使用的是json. 下面是请求的代码 public class ShortUrlHe