从新浪微博的API中获取关注人的信息,并分析关注人的地理位置分布
代码部分
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser
APP_KEY = '1932943714'
APP_SECRET = 'b114cdc6f5d62bc6f9a6db4e7d1c3522'
CALLBACK_URL = 'http://f.dataguru.cn/'
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#http://f.dataguru.cn/?code=b6cdb0bc7bd84d8797cb141826e04031
code = 'b6cdb0bc7bd84d8797cb141826e04031'
#获取token
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,类似abc123xyz456
expires_in = r.expires_in # token过期的UNIX时间
# 设置得到的access_token
client.set_access_token(access_token, expires_in)
# 获取关注列表
friends = client.friendships.friends.get(access_token=access_token , uid=2691742761)
length = len(friends['users'])
followers = []
desc = []
locations = []
for i in range(length):
followers.append(friends['users'][i]['screen_name'])
desc.append(friends['users'][i]['description'])
locations.append(friends['users'][i]['location'])
for i in range(length):
print followers[i]+" : "+desc[i]
locSet = set(locations)
for i in locSet:
print i, str(locations.count(i))
结果输出
我一直用的是python3,现在这个SDK只支持python2。大部分数据分析的库都在3里,所以这里就简单把结果在命令行打印出来,没有做过多的分析。
一部分结果:
关注人和简介:
微博开放平台 : http://open.weibo.com/ 微博开放平台的相关问题,可以私信我哦
闯王来了要纳粮 : 原百度网页搜索部资深研发工程师
新浪云 : 新浪云-新浪公司旗下云计算服务平台,于2009年起对外提供公有云计算服务。基于新浪公司18年的技术积累, 新浪云开放了完美支撑新浪内部多款重量级明星产品的核心技术,为广大用户提供安全可靠、高扩展、可弹性伸缩、免运 维的云计算服务。
网易云音乐 : 官网:http://music.163.com/ 网易云音乐是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用户打造全新的音乐生活。
52nlp : Make something people want; A blog for fools written by fools
且听枫吟 : too young too naive...
夏阿 : 网黄 店铺看首页置顶 公众号wujinyi-1990
避雷君 : 默默撸着画的避雷君
AnimeTamashii : 所罗门啊,我又回来了!
和菜头 : 对不起,我是一个网红,不能轻易地回复你的消息,这样会显得我不够高冷。
nbht : 作死小能手,退役老司机。谈动画比较多,发东西比较随意。二流作豚,一流演出厨。
黄章 : 魅族手机设计师,魅族科技创始人,董事长兼CEO
DssSsSsSsSssD :
王英会 : 一个执着的戏曲演员
凤凰新闻客户端 :
地区分布:
北京 丰台区 1
上海 卢湾区 1
北京 海淀区 4
北京 2
上海 徐汇区 2
河北 石家庄 1
其他 2
海外 美国 1
广东 珠海 1