精华内容
下载资源
问答
  • 首先需要在新浪微博注册一个App,新浪会给你一个App ID,App Secret,如图,官网地址在此:http://open.weibo.com/ 然后去高级设置里面去设置一下自己的回调地址: step 2 下载sinaweibopy 感谢廖雪峰大神!...

    step 1 申请App
    首先需要在新浪微博注册一个App,新浪会给你一个App ID,App Secret,如图,官网地址在此:http://open.weibo.com/
    这里写图片描述
    然后去高级设置里面去设置一下自己的回调地址:
    这里写图片描述

    step 2 下载sinaweibopy
    感谢廖雪峰大神!直接用pip install sinaweibopy即可,用不了pip的筒子,项目代码如下
    https://github.com/michaelliao/sinaweibopy

    step 3 代码

    from  weibo import APIClient
    import webbrowser
    import time
    APP_KEY = 'your app_key'
    APP_SECRET = 'your app_secret'
    CALLBACK_URL = 'http://www.example.com/callback'
    client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
    url = client.get_authorize_url()
    webbrowser.open_new(url)
    print "输入页面上的code"
    code = raw_input()
    r =client.request_access_token(code)
    client.set_access_token(r.access_token, r.expires_in)
    for i in range(1,12):
        print i
        content = "测试转发%s"%i
        values = content.decode('utf-8')
        print client.statuses.repost.post(id='weibo id', status=content, is_comment=0)
        time.sleep(5)

    其中的code就是输入这个:
    这里写图片描述

    最后的结果就是:妈妈再也不用担心我沉迷微博勒
    这里写图片描述

    这里写图片描述

    展开全文
  • 因为该活动注明了「不限猜的次数」,我便用 JavaScript 写一个自动转发的脚本,用机器代替手工转发,结果转发不到200次就被 李笑来 老师拉黑了,实在扫兴。与其独自郁闷,不如把技术细节分享给大家,祝大家

    故事的背景如下图,李笑来 老师于10月19日在 知乎Live 开设 一小时建立终生受用的阅读操作系统 的讲座,他老人家看到大家伙报名踊跃,便在微博上发起了一个 猜数量赢取iPhone7 的活动。

    因为该活动注明了「不限猜的次数」,我便用 JavaScript 写一个自动转发的脚本,用机器代替手工转发,结果转发不到200次就被 李笑来 老师拉黑了,实在扫兴。与其独自郁闷,不如把技术细节分享给大家,祝大家能早日赢得 iPhone7。我的微博地址是:http://weibo.com/stone0090,欢迎大家来围观。

    本以为花一两个小时就能搞定这个微博自动转发的脚本,结果中途不停的踩坑折腾了大半天。还好早早的被 李笑来 老师拉黑。不然用 .NET 重写工具,再接入 打码兔,还得再花我好几个小时。好不容易国庆长假休息一下,还不是想给媳妇换个 iPhone7,我就能用她的 iPhone6s,要不然真心不想花太多时间捣鼓这个。废话不多说了,进入正题:

    前期准备

    • JavaScript:如果不会 JavaScript,建议先学完 JavaScript 闯关记,再继续看本文。
    • Chrome:开发调试 JavaScript 必备神器。
    • 微博会员:据网上流言,普通用户如果转发过多会被封号,而会员则不会。

    填坑过程

    打开 Chrome 浏览器中,先登录自己的微博,再进入李笑来老师的微博首页 http://weibo.com/bylixiaolai

    打开 Chrome 开发者工具(Mac 快捷键 option + comand + j,Window 快捷键 ctrl + shift + i),切换 tab 到 NetWork,并点击 clear,清除初始化时所加载的数据。

    然后手动转发一次微博,获取到转发时所产生的请求。

    利用上图红框中的关键数据,使用 JavaScript 模拟发送转发请求,具体代码如下。

    // 转发微博,并评论
    function forwardWeibo(content, retcode) {
      var formData = new FormData();
      formData.append('pic_src', '');
      formData.append('pic_id', '');
      formData.append('appkey', '');
      formData.append('mid', '4024988475919525');
      formData.append('style_type', '1');
      formData.append('mark', '');
      formData.append('reason', content);
      formData.append('location', 'page_100505_home');
      formData.append('pdetail', '1005051576218000');
      formData.append('module', '');
      formData.append('page_module_id', '');
      formData.append('refer_sort', '');
      formData.append('is_comment_base', '1');
      formData.append('rank', '0');
      formData.append('rankid', '');
      formData.append('_t', '0');
      formData.append('retcode', retcode || '');
    
      var xhr = new XMLHttpRequest();
      xhr.timeout = 3000;
      xhr.responseType = "text";
      xhr.open('POST', 'http://weibo.com/aj/v6/mblog/forward?ajwvr=6&domain=100505&__rnd=' + new Date().getTime(), true);
      xhr.onload = function(e) {
        if (this.status == 200 || this.status == 304) {
          var data = JSON.parse(this.responseText);
          if (data.code == "100000") {
            // 转发微博成功
            console.log(content);
          } else if (data.code == "100027") {
            // 转发微博失败,需要回答图片验证码的问题
            console.log(data);
          } else {
            // 转发微博失败,其他原因
            console.log(data);
          }
        }
      };
      xhr.send(formData);
    }
    //forwardWeibo('转发内容');
    //forwardWeibo('转发内容',verified('答案'));
    
    // 每5秒转发一次
    var count = 35000;
    setInterval(function(){
      forwardWeibo(count++);
    }, 5000); 

    打开 Chrome 开发者工具,切换 tab 到 Console,拷贝上面代码到 Console 中,按回车键即可以「5秒1次」的频率对李笑来老师的这条微博进行转发评论,如需停止请关闭该页面再重新打开。

    然而仅过了2分钟,成功转发50多次之后,后面的转发全部失败。经检查发现,由于我转发频率过快,被微博官方暂时封号。回答一些简单的问题把账号解封,我把转发频率由「5秒1次」改为「10秒1次」,因为除我之外还有其他几个号也在用脚本刷,他们大概用「10秒1次」的频率,稳定的转发没有间断过,所以「10秒1次」应该是相对安全的。

    我调整频率之后重新开始转发,但还是转发失败,手动操作后发现转发需要输入验证码,以前并没有这个环节,看来刚才的封号是有一些后遗症的。验证码我才不怕,专业的打码服务 打码兔 连12306的验证码都能轻松应付,识别这里的验证码就是小儿科。但接入 打码兔 的工作量有点大,我还是先找找看,有没有更简单的方法。

    果然还真被我找到了,虽然转发的时候需要输入验证码,但评论的时候并不用,手动操作一把,评论并转发也能成功,便马上新增了一个评论的方法,具体代码如下。

    // 评论微博,并转发
    function commentWeibo(content) {
      var formData = new FormData();
      formData.append('act', 'post');
      formData.append('mid', '4024988475919525');
      formData.append('uid', '1760390531');
      formData.append('forward', '1');
      formData.append('isroot', '0');
      formData.append('content', content);
      formData.append('location', 'page_100505_home');
      formData.append('module', 'scommlist');
      formData.append('group_source', '');
      formData.append('tranandcomm', '1');
      formData.append('pdetail', '1005051576218000');
      formData.append('_t', '0');
    
      var xhr = new XMLHttpRequest();
      xhr.timeout = 3000;
      xhr.responseType = "text";
      xhr.open('POST', 'http://weibo.com/aj/v6/comment/add?ajwvr=6&__rnd=' + new Date().getTime(), true);
      xhr.onload = function(e) {
        if (this.status == 200 || this.status == 304) {
          if (this.responseText.code == "100000") {
            console.log(content);
          } else {
            console.log(this.responseText)
          }
        }
      };
      xhr.send(formData);
    }
    //commentWeibo('评论内容');
    
    // 每10秒评论一次
    var count = 35000;
    setInterval(function(){
      forwardWeibo(count++);
    }, 10000); 

    没高兴几分钟,又发现新的问题,评论成功10条,只有1条转发成功了,这完全是坑爹啊。看来只有接入 打码兔 才能彻底解决问题了,估计要花2、3个小时才能搞定,算了,先吃饭、洗澡再弄。

    磨蹭了1、2个小时之后回来,发现微博转发输入验证码的限制已经被取消,但我仍心有余悸,把脚本的频率改为「30秒1次」让它慢慢的跑。然后,埋头研究 打码兔 的 API,注册相关开发者账号,充值测试费用。就在我刚准备写代码之际,脚本又失败了,而且,这次的报错跟以前都不一样,原来是我已经被 李笑来老师拉黑了,再也不能转发评论他老人家任何微博了。

    本以为会刷几万条微博出来,没想到只刷了200条不到,这些微博就留作纪念不删了。下面是提前准备好的批量删微博的脚本。

    //删除微博
    function deleteWeibo() {
      var items = document.querySelectorAll(".WB_feed_type");
      for(var i in items){
        if(items[i].getAttribute){
          var formData = new FormData();
          formData.append('mid', items[i].getAttribute("mid"));
          var xhr = new XMLHttpRequest();
          xhr.open('POST', 'http://weibo.com/aj/mblog/del?ajwvr=6', false);
          xhr.send(formData);
          console.log(xhr.responseText);
        }
      }
    }
    deleteWeibo();

    信念瞬间崩塌,思想得到解放,果断去抱着媳妇追 权利的游戏,啪啪啪,真是一个美好夜晚。

    最后,祝大家国庆节快乐。如果还想听我聊技术(che dan),请关注微信公众号「劼哥舍」,老斯基带你飙车。

    展开全文
  • 用python自动微博

    万次阅读 2016-06-04 04:38:34
    终极目标是用raspberry pi + camera 捕捉画面,处理图像识别图中有我家主子(猫), 然后自动capture图像,发微博。raspberry pi明天才能送到,所以昨天晚上倒腾了下发微博的部分,发现还是很方便哒。 而且其实我...

    ……刚刚全部写完了点发布……结果什么都没保存……内心好忧伤。

    终极目标是用raspberry pi + camera 捕捉画面,处理图像识别图中有我家主子(猫), 然后自动capture图像,发微博。raspberry pi明天才能送到,所以昨天晚上倒腾了下发微博的部分,发现还是很方便哒。 而且其实我之前从来没碰过python……所以……还是很好上手的。

    啊还是放个自己的github的链接吧:https://github.com/bennygato/catcam

    (此处要有主子照片~)



    1.首先需要申请到一个应用 才有 app key 和 app scret

    网址是:http://open.weibo.com/development/mobile

    然后点击 应用开发 -> 移动应用 然后根据个人信息填写,之后会收到邮件 里边有app key, app secret  







    非常重要!去应用信息-高级信息里面填写回调页 这是什么我也不知道!但是照着填!我填的是 https://api.weibo.com/oauth2/default.html 这个需要和之后的python code里面的 callback url一致!!!




    2. 安装 新浪微博sdk


    sudo apt-get install python-pip

    sudo pip install sinaweibopy


    mac os 的话是:

    sudo easy_install pip

    sudo pip install sinaweibopy


    3. Python Code

    '''
    checkout http://blog.csdn.net/bennygato/article/details/51582715 for 
    more instructions
    '''
    #encoding=utf-8
     
    import time
    from weibo import APIClient
    
    def get_access_token(app_key, app_secret, callback_url):
        client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
        # 获取授权页面网址
        auth_url = client.get_authorize_url()
        print auth_url
        
        # 在浏览器中访问这个URL,会跳转到回调地址,回调地址后面跟着code,输入code
        code = raw_input("Input code:")
        r = client.request_access_token(code)
        access_token = r.access_token
        # token过期的UNIX时间
        expires_in = r.expires_in
        print 'access_token:',access_token
        print 'expires_in:', expires_in
    
        return access_token, expires_in
    
    if __name__ == '__main__':
        app_key = 'xxxxxxx'
        app_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxx'
        callback_url = 'https://api.weibo.com/oauth2/default.html'
    
        access_token, expires_in = get_access_token(app_key, app_secret, callback_url)
        # 上面的语句运行一次后,可保存得到的access token,不必每次都申请
        # access_token = 'xxxxx'
        # expires_in = 'xxxxx'
    
        client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
        client.set_access_token(access_token, expires_in)
    	
        idx = 1
        default_msg_part_1 = 'This is no.'
        default_msg_part_2 = ' msg sent automatically from benny"s robot HAHAHA'
     
        # send a weibo with img
        f = open('test.jpg', 'rb')
        r = client.statuses.upload.post(status=u'test: weibo with an img. -benny', pic=f)
        f.close() # APIClient不会自动关闭文件,需要手动关闭
    
        # send text weibo every 200sec
        while True:
            line = default_msg_part_1 + str(idx) + default_msg_part_2
    	utext = unicode(line,"UTF-8") 
            client.post.statuses__update(status=utext) 
    	idx = idx + 1
            time.sleep(200)    



    效果~~~~~~~~~~~~





    =====================

    参考:

    http://blog.sina.com.cn/s/blog_786555f6010180ji.html

    http://www.guokr.com/post/475564/

    展开全文
  • 用 Python 自动定时发微博

    千次阅读 2020-02-21 18:06:46
    其实小帅b已经挺久没有玩微博了,记得上次玩微博还是为了给周杰伦打榜,不过最近心血来潮,觉得俺的微博账号躺着也是躺着,要不就用 Python 做一个自动定时发微博的机器人,让它在上面飘一会...

    其实小帅b已经挺久没有玩微博了,记得上次玩微博还是为了给周杰伦打榜,不过最近心血来潮,觉得俺的微博账号躺着也是躺着,要不就用 Python 做一个自动定时发微博的机器人,让它在上面飘一会。

    怎么个飘法呢?

    这不禁让我想到了一个叫做 “古城钟楼” 的微博账号,每天都定时定点的在上面 “铛铛档”,其它的啥也不干,但牛逼的是,人家就凭 “铛铛档” 就有了 100 多万粉丝,我特么都快给跪下了。

    所以我也打算弄一个类似这样的微博机器人,我要做的是,每隔一段时间就发布一条关于 “年度进度” 的微博,告诉你一年过去百分之多少了。比如: 

    2020 年进度:

    [#-------------------]4%

    事不宜迟,先把我的微博名称给改了,就叫做 “我的年度进度条” 吧,再把签名改成 “给时间打上 tag” 。

    瞬间有点逼格了,帅b微博百万粉指日可待!!

    那么如何实现定时发微博呢?接下来就是:

    学习 Python 的正确姿势

    遇事不决,量子力学,去微博的开放平台逛一波,果然发现了一个写入微博的 API:

    进去看了下,是一个 POST 请求,需要携带两参数,一个 token, 一个要发微博的内容:

     

    上面说了,token 参数需要采用 OAuth 授权后才能获得。

    所以得先登录上去注册一个应用:

    反正就是一顿创建之后拿到应用相关的 App Key, App Secret 等参数,有了它们才可以去获取 token 从而使用发微博的 API。

     

    遇事不决,量子力学,在 PyPI 上面搜下 weibo ,果然有人用 Python 封装好了微博接口请求的 API :

    第一个点进去看看介绍:

    唉呀妈呀,这正是我想要的哇,Python 又帮我省下了不少时间,哎,人生苦短呀。

    那就 install 一波呗:

     

    开始撸下代码,创建一个 weibo_robot.py ,然后把需要的库导进来:

    这个 weibo 库的获取 token 是这样的:

    那就把它写成一个方法,然后等下把参数塞进去就可以了:

    把刚刚在微博开放平台获到的参数,和自己微博账号密码给定义好:

    有了参数就可以获取 weibo 的 client 了:

    有了 client 就可以调用 share 接口来发微博了,来测试一下:

    运行一波:

    报错了,文本找不到域名?我就纳闷了呀,为啥要 domain?

    再仔细看下文档才发现还要带上域名的:

    好吧,带上俺绑定的域名试试看:

    再运行一波,没报错了,打开俺的微博看看:

    可以可以,发布成功,不过来自 “未通过审核应用” 是什么鬼?

    看下开放平台的应用发现:

    好吧,不管了,先这样,接下来就可以来写一个获取年度进度的方法了。

    希望发布的微博格式是这样的:

    xxxx 年进度:

    [#-------------------]xx%

    所以定义一下特定的输出格式:

    其中的 years 可以通过 datetime 获取:

    百分比就是获取当天是新的一年的第几天,然后除以 365 ,而主要的进度条在这里就定义一个这样的字符串:

    每一小格代表 5% ,然后每次计算百分比,比如现在就是这样:


    而 14% 就是这样:

    可以,那就四舍五入下,然后整下字符串替换得了:

    再运行一波:

    没毛病,那最后就扔到服务器上定时运行脚本了。

    可以使用 Linux 的 crontab 定时任务,执行 crontab -e,编辑定时运行脚本,比如定时每天 17 :20 发布微博:

    保存退出即可,这样每到了特定的时间,它就会屁颠屁颠的运行了。

    展开全文
  • 新浪提供的接口并没有转发和点赞的接口     1、https://github.com/ca2r0tXb0y/FowardingSinaWeibo 2、http://open.weibo.com/apps/2566908347/privilege 3、http://open.weibo.com/tools/console 4、...
  • Sina weibo新浪微博 API返回信息详解

    万次阅读 2018-07-09 13:13:41
    Sina weibo新浪微博 API返回信息详解 var $CLTMSG={R01008:"邮箱/会员帐号/手机号", R11111:"<p class=stxt2>1、如果登录名是
  • 本文着眼于基于微博内容的用户标签自动生成,借助对内容的分析,生成 能够体现用户兴趣的标签。 本文通过新浪微博 API 随机获取了百万级规模的标签相关数据,用于分 析用户标签在统计、语义等方面的特征。同时,...
  • Redis是一个由ANSI C语言编写,性能优秀、支持网络、可持久化的K-K内存数据库,并提供多种语言的API。它常用的类型主要是 String、List、Hash、Set、ZSet 这5种。 Redis在互联网公司一般有以下应用:String:...
  • 无需WEIBO官方API实现自动微博

    千次阅读 2013-03-30 16:52:27
    2 第二步就是发微薄,一开始在网上在找了很久也没发现现成的例子,又只能自己动手了,用Fiddler2抓取实际的包,然后通过python构建的同样的包就可以实现,以此类推,@人,转发什么的也是可以实现的。 3 全部代码就...
  • 新浪微博的数据采集主要有两种方法,基于新浪微博API和基于网络爬虫的页面解析。本系统采用基于网络爬虫的页面解析方法,基于网络爬虫的微博信息采集可以突破API开放接口限制,不间断地爬取信息。网络爬虫根据顺序...
  • 由于做实验需要用到新浪微博的数据,尝试了一些方法都不太好用,最后只有用新浪提供的API进行下载,新浪对于普通用户的数据下载是有限制的,一个的IP限制,一个是用户限制,很纠结的,要每天都要重新申请token,没有...
  • 微博开放平台 http://open.weibo.com/wiki/2/search/topics 爬虫框架文档  https://www.querylist.cc/docs/guide/v4/installation 爬虫框架代码  https://pan.baidu.com/s/1QPMUalL5HcVJ4L7zUY0LMg ...
  • 提取信息中的图像数据,使用训练好的model模型进行预测图像分类,若属于人像分类则通过API自动转发自动转发系统日志: 机器人识别效果 通过35次epoch 迭代,训练准确度达到89%左右,验证准确度...
  • python爬取微博用户的微博内容和图片

    千次阅读 多人点赞 2019-05-03 17:17:40
    想保存自己喜欢的idol微博图片,但是一张张自己保存太慢,怎么办?想保存微博博主的所有表情包,怎么才能快速把这些表情包下载到本地呢?想分析某位博主的发博规律,要分析博主所有微博信息怎么做? 移动端的微博...
  • 自动装配机制需要了解按类型匹配进行自动装配,按bean名称进行自动装配,构造器中的自动装配和自动检测等主要的四种方式。 还需要了解一下list、set、map等集合类属性的配置方式以及内部bean的使用。 四、...
  • WebAPI微博管家

    2013-04-09 11:06:51
    基本功能: 1.查看微博、发微博、发送带图片微博、收藏、评论、转发、查看@我的微博、关注、取消关注、查看粉丝等 扩展功能: 2. 自动转发WebAPI相关微博
  • 一、需求: 自己在github上搭建一个基于Jekyll的博客(http://beginman.cn/),每次写完博客后... 二、问题与条件: ... 2.注册成新浪微博api开发者,这可以获取“恭喜!我们已经验证了您对网站的管理权!并成功获取
  • (可选,允许为空) &title=分享时所示的文字内容,为空则自动抓取分享页面的title值(可选,允许为空) &pic=自定义图片地址,作为微博配图(可选,允许为空) &ralateUid=转发时会@相关的微博账号(可选,允许为空) &...
  • 转发一条微博信息(可加评论)id:微博id, message:评论 def repost(self, id, message): status = self.api.repost(id, message) self.obj = status id = self.getAtt( " id " ) text = self....
  • 这次是我第一次写的项目总结,虽然这只是一个小项目,但确实是获益良多。虽然说是独立完成,但其实在做的... 项目的主要内容就是用Xcode写出一个具有基本功能的iPhone新浪微博客户端,其中必不可少地需要调用新浪...
  • 突然觉得,现在发微博已经成为当代青年的潮流,或分享自拍美照,或分享美食美景,小编的女朋友也不例外,平时爱分享一些我俩生活的趣事。但是她最近开始给我抱怨我...
  • 1.新浪微博: http://service.weibo.com/share/share.php?url= count=表示是否显示当前页面被分享数量(1显示)(可选,允许为空) &url=将页面地址转成短域名,并显示在内容文字后面。(可选,允许为空) &appkey=用于...
  • 【视频美颜-美白、美肤、磨皮帮你美颜一步到位】 磨皮、美白、美肤,一步到位,一款能自动美颜的视频拍摄神器,让你的每段视频都美美哒~ 【智能装扮-让你变身二次元形象】 神奇的人脸识别功能,让装扮贴纸随你动,...
  • slimerjs-自动登陆微博并回复

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,862
精华内容 1,544
关键字:

自动转发微博api