【问题标题】:Using Oauth library in python在 python 中使用 Oauth 库
【发布时间】:2017-01-18 22:34:24
【问题描述】:

我正在使用 oauth 库在 python 中运行 twitter api。我已经包含了下面的代码。当我运行代码“twtest.py”时,我得到错误“模块”对象没有属性“OAuthConsumer”。

1.twtest.py

  import urllib
    from twurl import augment

    print '* Calling Twitter...'
    url = augment('https://api.twitter.com/1.1/statuses/user_timeline.json',
            {'screen_name': 'saurabhpathak20', 'count': '2'} )
    print url
    connection = urllib.urlopen(url)
    data = connection.read()
    print data
    headers = connection.info().dict
    print headers

2.twurl.py

import urllib
import oauth
import hidden

def augment(url, parameters) :
    secrets = hidden.oauth()
    consumer = oauth.OAuthConsumer(secrets['consumer_key'], secrets['consumer_secret'])
    token = oauth.OAuthToken(secrets['token_key'],secrets['token_secret'])

    oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, 
        token=token, http_method='GET', http_url=url, parameters=parameters)
    oauth_request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(), consumer, token)
    return oauth_request.to_url()


def test_me() :
    print '* Calling Twitter...'
    url = augment('https://api.twitter.com/1.1/statuses/user_timeline.json',
        {'screen_name': 'saurabhpathak20', 'count': '2'} )
    print url
    connection = urllib.urlopen(url)
    data = connection.read()
    print data
    headers = connection.info().dict
    print headers

3.hidden.py

def oauth() :
    return { "consumer_key" : "pj......U8fFRyjV",
        "consumer_secret" : "zty3njhO4IRl........ELh1YC1j1rX",
        "token_key" : "515167047-xaRfSm7.......wBBOrjNd61anI55D",
        "token_secret" : "  y7ZCBDf6d..........x1eJV8mHRnL8hh" }

请帮助我了解代码中的问题。 谢谢。

【问题讨论】:

    标签: python python-2.7 oauth web-scraping twitter-oauth


    【解决方案1】:

    您需要从oauth 导入oauth 而不是import oauth

    >>> from oauth import oauth
    >>> oauth.OAuthConsumer
    <class 'oauth.oauth.OAuthConsumer'>
    

    【讨论】:

    • 谢谢,但这次我遇到了一个新错误。检查此链接以获取错误tinypic.com/r/ny8gt0/9 的屏幕截图
    • 这是一个执行错误,完全不同,所以在这里回答对特定问题不利。此外,在那个 HTTP 东西领域,我帮不了你。请提出一个已修复第一个错误的新问题,不要在问题中发布屏幕截图,而是将错误作为文本发布,否则您将被否决。
    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 2011-06-18
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2012-07-30
    • 2023-04-03
    相关资源
    最近更新 更多