Python大法:新浪微博也可以这么玩^_^


环境准备

  • 新浪微博API

    • 首先,注册一个新浪开发者帐号,并在 新浪开发平台 新建一个 app.
      [ps]:开发者平台好像不能登陆,我是通过登陆微博页面然后找到链接进去的

    • 创建好应用之后在 '应用信息 -> '基本信息' 里面获取 App KeyApp Secret.
      [ps]:我创的是客户端桌面应用,可以随便创

    • 在 '应用信息 -> '高级信息' 里面设置好 '授权回调页'.
      [ps]:默认回调页为'https://api.weibo.com/oauth2/default.html'

  • 安装weibo包 开源在github

pip install weibo

  • Token认证

下面分别用 API_KEY, API_SECRET, REDIRECT_URI 代表准备工作里面的三个参数。

>>> from weibo import Client    
>>> c = Client(API_KEY, API_SECRET, REDIRECT_URI)   
>>> c.authorize_url     
'https://api.weibo.com/oauth2/authorize?redirect_uri=http%3A%2F%2F127.0.0.1%2Fcallback&client_id=123456'    

复制链接到浏览器打开,获取 code(在URL中).

>>> c.set_code('abcdefghijklmn')

client 初始化完成。token 可以被保存下来供下次调用时直接使用。

>>> token = c.token
>>> c2 = Client(API_KEY, API_SECRET, REDIRECT_URI, token)
>>> c2.get('users/show', uid=2703275934)
  • 帐号认证

除了使用 token 认证,还可以使用 username / password 进行认证。

>>> from weibo import Client
>>> c = Client(API_KEY, API_SECRET, REDIRECT_URI, username='admin', password='secret')
>>> c.get('users/show', uid=1282440983)
  • 接口调用

参考 微博开发文档_ 进行接口调用。


代码实例

功能:发微博(好像要发公开的)远程执行windows命令并在评论区回显结果

# -*-coding:utf-8 -*-
from weibo import Client
import time
import subprocess

# 用户自定义变量
APP_KEY = ''    # App_key
APP_SECRET = ''   # App_serect
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html'
AUTH_URL = 'https://api.weibo.com/oauth2/authorize'
USERID = ''     # 登陆微博时的用户名(邮箱或手机号)
PASSWD = ''  # 密码


def main():
    """获取用户第一条评论,当第一条微博改变时,进行命令执行,并在微博评论处返回执行信息"""

    c = Client(APP_KEY, APP_SECRET, CALLBACK_URL, username=USERID, password=PASSWD)

    print 'Login success'
    print 'Listening...'

    UID = c.get('account/get_uid')['uid']  # 获取用户UID
    status = c.get('users/show', uid=UID)['status']  # 获取用户最近微博

    current_status = status
    while True:
        current_status = c.get('users/show', uid=UID)['status']  # 获取用户最近微博
        current_text = current_status['text']
        current_id = current_status['id']
        print time.ctime(), current_text

        if current_id != status['id'] and current_text:
            tmp = subprocess.check_output(current_text, shell=True)  # 执行shell命令
            tmp = tmp[:140]  # 140字限制
            c.post('comments/create', id=current_id, comment=tmp)
            print tmp
            status = current_status

        time.sleep(10)  # ip限制1000次/小时


if __name__ == '__main__':
    main()


测试结果

项目及图片转自github

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 巧妇难为无米之炊。数据获取是数据分析的前提。许多网站会通过API接口向第三方开放网站的部分数据。新浪微博也不例外。...
    xiangzhendong阅读 30,209评论 2 14
  • 今年年初,第一份实习,接触了如何使用Facebook API, Twitter API...去获取数据,自动发个F...
    Jason_Yuan阅读 16,057评论 3 51
  • 过程都是一样的: 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并...
    米刀灵阅读 2,933评论 0 1
  • 还很很多哦~~~如果同样喜欢小丸子的话 可以加我微信哦 ,打包发~
    小雨点41阅读 1,867评论 0 0