

下記のプログラムを使って、pythonからweiboの投稿を取得したいです。#!/usr/bin/env python

weiboというモジュールを提供するパッケージが二種類あります。  
weiboパッケージとsinaweibopyパッケージです。

下記のリンクからsinaweibopyとpythonの情報取得しました  
<http://github.liaoxuefeng.com/sinaweibopy/>  
<https://github.com/michaelliao/sinaweibopy/wiki/OAuth2-HOWTO>

* * *

[weiboのaccess_tokenについて](https://www.cs.cmu.edu/~lingwang/weiboguide/)

[code]

    {"access_token":"2.00skPOWG0zpXw_e8253b9b7c9GKIdE","remind_in":"157679999","expires_in":157679999,"uid":"5973036902”}
    code=682ac33cecf21d6efee0882e2a91eba4
    
[/code]

[pythonからweiboの投稿を取得について](https://github.com/michaelliao/sinaweibopy/wiki/OAuth2-HOWTO)

[(API_KEYなどの情報が載っています](http://open.weibo.com/apps/294703483/info/basic)

私はsinaweibopyパッケージから投稿を取得したいですがErrorが出る。  
上記のリンクで書かれた通りにダウンロード（sinaweibopyパッケージ）などしましたがAPIClientのエラーが出ます。

[code]

    from weibo import APIClient
    import urllib2
    import urllib
    import sys
    import time
    from time import clock
    import csv
    import random
    
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    '''Step 0 Login with OAuth2.0'''
    if __name__ == "__main__":
        APP_KEY = '294703483' # app key
        APP_SECRET = 'a2ef9de0a580edb7a26daf2804d27624' # app secret
        CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' # set callback url exactly like this!
        AUTH_URL = 'https://api.weibo.com/oauth2/authorize'
        USERID = 'xxxxxxxxx' # your weibo user id
        PASSWD = 'xxxxxxx' #your pw
    
    
        client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
        referer_url = client.get_authorize_url()
        print "referer url is : %s" % referer_url
    
        cookies = urllib2.HTTPCookieProcessor()
        opener = urllib2.build_opener(cookies)
        urllib2.install_opener(opener)
    
        postdata = {"client_id": APP_KEY,
                    "redirect_uri": CALLBACK_URL,
                    "userId": USERID,
                    "passwd": PASSWD,
                    "isLoginSina": "0",
                    "action": "submit",
                    "response_type": "code",
                    }
        headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0",
                    "Host": "api.weibo.com",
                    "Referer": referer_url
                }
    
        req  = urllib2.Request(
           url = AUTH_URL,
           data = urllib.urlencode(postdata),
           headers = headers
           )
        try:
            resp = urllib2.urlopen(req)
            print "callback url is : %s" % resp.geturl()
            code = resp.geturl()[-32:]
            print "code is : %s" %  code
        except Exception, e:
            print e
    
    r = client.request_access_token(code)
    access_token1 = r.access_token # The token return by sina
    expires_in = r.expires_in
    
    print "access_token=" ,access_token1
    print "expires_in=" ,expires_in   # access_token lifetime by second. http://open.weibo.com/wiki/OAuth2/access_token
    
    """save the access token"""
    client.set_access_token(access_token1, expires_in)
    
[/code]

実行結果

[code]

    [root@localhost デスクトップ]# python yoso.py
    Traceback (most recent call last):
      File "yoso.py", line 3, in <module>
        from weibo import APIClient
    ImportError: cannot import name APIClient
    
[/code]

もしわかる方いれば教えていただけるとありがたいです。  
よろしくお願いいたします。


CC BY-SA 3.0
2016-10-03T15:28:40.290
29327
2022-10-01T05:56:43.630
2022-10-01T05:56:43.630
3060
18859
question
python
pythonからsinaweibopyパッケージを使ってweiboの投稿を取得したいですがERRORが出る。