0

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

目前,我只是在测试我是否可以连接到 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

4 回答 4

1

我猜你应该设置'https_proxy'。

在我的 linux 上,我使用这个:

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

在运行我的 Tweepy 脚本之前。

Tweep 使用“请求”包发送请求,请阅读http://docs.python-requests.org/en/master/user/advanced/#proxies了解更多信息。

于 2016-08-01T22:53:57.770 回答
0

tweepy 中的代理支持严重不足;有一个补丁可以解决这个问题。

该补丁将 Tweepy 从httplib直接使用切换到使用urllib2,这意味着它会尊重http_proxy环境变量。

于 2012-11-01T10:53:06.977 回答
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 之前执行上述操作,以确保新的开启器生效

于 2012-11-01T10:50:11.533 回答
0

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

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

于 2013-04-06T17:02:01.180 回答