在代理后面使用Tweepy API

时间:2012-11-01 10:40:19

标签: python oauth proxy tweepy

我有一个使用 Tweepy ,一个Twitter的python包装器。我正在用Python编写一个小的GUI应用程序来更新我的推特账号。

目前,我只是测试我是否可以连接到Twitter,因此使用了test()调用。我支持Squid代理服务器。我应该对代码片段进行哪些更改,以便完成我的工作。

在bash shell中设置 http_proxy 对我没有帮助。

def printTweet(self):
    #extract tweet string
    tweet_str = str(self.ui.tweet_txt.toPlainText()) ;
    #tweet string extracted.
    self.ui.tweet_txt.clear()  ;

    self.tweet_on_twitter(str);

def tweet_on_twitter(self,my_tweet) :
    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET);
    auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) ;
    api = tweepy.API(auth) ;

    if api.test() :
        print 'Test successful' ;
    else :
        print 'Test unsuccessful';

4 个答案:

答案 0 :(得分:1)

我想你应该设置' https_proxy'代替。

在我的linux上,我用它:

> export HTTPS_PROXY="http://xxxx:8888"

在运行我的Tweepy脚本之前。

Tweep使用'请求'发送请求的包,请阅读http://docs.python-requests.org/en/master/user/advanced/#proxies以获取更多信息。

答案 1 :(得分:0)

编辑:事实证明这不是一个可行的答案,但我将其留在此处以供参考


由于快速浏览代码显示tweepy正在使用urllib2.urlopen& co。,最简单的可能只是覆盖默认的开启者......

# 'x.x.x.x' = IP of squid server
your_squid_server = urllib2.ProxyHandler({'http': 'x.x.x.x', 'https': 'x.x.x.x'})
new_opener = urllib2.build_opener(your_squid_server)
urllib2.install_opener(new_opener) 

目前还没有获得环境来检查......

在导入tweepy之前执行以上操作以确保新的开启者有效

答案 2 :(得分:0)

在tweepy中的代理支持严重缺乏;有patch available旨在解决这个问题。

修补程序将Tweepy从直接使用httplib切换为使用urllib2,这意味着它会尊重http_proxy环境变量。

答案 3 :(得分:0)

这是一个老问题,但希望这会有所帮助。

https://bitbucket.org/sakito/tweepy提供了与urllib合并的tweepy;代理设置运行良好。流有一点问题(至少在我的情况下),但只需稍加调整即可使用。