【派姐说说】
亲爱的城市数据派会员们,3月的会员福利之新技术迷你教学终于来啦!完整版教学内容+代码+数据都将发送至会员邮箱,请注意查收哦!
会员费:599元/人/年=超过100份的大数据“干货”资料+最多20次大数据在线沙龙+最多20次新技术迷你教学+各类线下活动+行业专家亲自指导。如何成为会员,点击可查看:【小派求供养】城市数据派2016年度会员招募
亲们,你想get什么大数据相关的新技能呢?都请留言告诉派姐哦!小派一定努力送达!如果你有新技能愿意分享,也欢迎有偿投稿给小派哦udparty@qq.com!
【投稿作者信息】
宗立,南京大学城市规划与设计系,南京大学中澳虚拟城市与环境联合实验室成员。
【相关说明】
本教程只适用于小规模(10^4-10^6条数据)的签到数据采集与分析流程,本教程中的方法与工具无法驱动大型商业化应用项目。本教程中所使用的方法尽量贴近一般规划师已掌握的知识与技能,将数据采集的步骤尽可能分解。本教程的重点在于利用Python API获取相应数据的思路及实现,分析过程只是抛砖引玉,各位读者在自己的需求的基础上肯定能创造出更强大、更多样的分析过程。
为保密与实用起见,对本教程中的分析逻辑进行过简化,本教程附带的脚本及数据集均经过一定的处理。教程中的脚本工具尽可能减少逻辑层级,使用初级的Python语法与函数。数据集经过相应的混淆与截断处理,数据可能存在重复和瑕疵,但不影响在本教程中的使用。
为了提升实用性,避开了所有需要进行人工审核的过程,故数据采集量相对受限。教程中使用的授权与API调用方法可能会随着新浪微博的升级而升级,仅保证在本教程写作完成时,相应方法可用(2016.03.03)。本教程中的所有内容仅供学习创建微博数据分析应用使用,在善意使用的情况下,满足微博开放平台的使用协议,特此声明!需要进行商业化应用的用户请使用微博提供的商业数据服务(open.weibo.com/development/businessdata)!
【必备知识】
Python(基础水平,2.7.X)、JSON解析
【可选模块】
模拟网页登录、Database(SQL/NoSQL皆可)、ArcGIS
【案例及思路简介】
某存量详细规划项目需要对项目区域内的消费场所业态提升方向提出指导,意图借助微博数据对相关人群的消费习惯进行分析,并得出相关的结论。
在这个过程中,首先需要得到项目区域的详细坐标(可使用ArcGIS获取坐标,也可利用地图网站进行地址反查或使用相关的Geocoding服务)。之后需要利用这个坐标或范围获取区域内的历史微博(在项目区域内发出过微博的用户很有可能就是项目区域内消费场所的消费者),再利用一定的规则根据这些微博的详细信息提取出目标用户群体,最后查询这些用户的签到记录(出行历史中的一部分数据反映相应的消费习惯)。
对出行历史中的消费场所业态进行简单的分析和解读就可得到目标用户群体的消费倾向,即可对本项目中的消费业态提升方向提出初步的指导性意见。
【教程本体】
1.利用个人微博账号登陆微博开放平台(http://open.weibo.com),点击我的应用。(在还未创建应用时,会自动跳转到应用创建页面。)
2.完善开发者信息(只需填写基本信息并验证邮箱后即可创建一般应用(微连接),无需进行身份认证)。
3.创建新应用(名称填写时无特殊要求,注意不与应用库中已存在的应用名称重复即可),在创建完成后,注册邮箱将收到来自新浪的提示邮件,其中包含认证信息(认证信息也就是在之后的分析过程中将要用到的APP_KEY以及APP_SECRET)。
4.进入应用设置界面,切换到应用信息下的高级信息,将授权回调页与取消授权回调页都设置为新浪微博的默认地址(这一步的设置与新浪采用的认证方式有关,若不填写将无法获取授权token,也就无法调用 API)。
5.切换至测试信息页面,点击编辑按钮,添加“测试用户”。(由于整个过程中不会将应用提交新浪审核,所以只能使用主动添加的测试用户账号的授权来调用API,上限为15个用户。如有更高的需求,可与新浪官方联系,寻求合作。微博的API接口对于每日每时访问频次有相应的限制。)
6.安装Python微博SDK,并利用脚本工具获取已添加的测试账号的token。(微博Python SDK的相关内容见微博开放平台的API文档。熟悉相关API调用方法后,在CMD中运行pipinstall sinaweibopy即可安装微博Python SDK。如果读者朋友尚不了解pip或easy_install命令的使用方法,那说明您的Python水平可能尚未达到本教程的要求。为节省您的宝贵时间,请您进一步熟悉Python后再来服用本教程。另:测试账号的token每24小时需要更新一次。)(利用多个账号密码自动获取token并定期自动更新需要自行抓包并仿造POST请求,掌握此技术的读者朋友不妨一试。此处为简明起见,不予赘述。)
使用pip install sinaweibopy安装微博Python SDK(由于笔者已安装,所以此处显示与初次安装不同)
图为login_set.py,在安装微博SDK后,按照注释填写相关信息并运行即可
运行后需要使用测试账号在默认浏览器中进行授权
授权成功后,将地址栏中的认证code复制下来
将code粘贴到Python运行的窗口中,并敲击回车
程序成功利用code换取token后,利用token授权API读取公共时间线信息并输出
7.至此,准备工作已经结束。接下来,就可以利用token信息对API进行授权,并获取相关的地理信息了。。。。
如果您还想查看接下来的步骤,需要成为会员哦,您的一点支持将让小派更努力的为您带来更多迷你教学内容!