我有一个使用 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';
答案 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;代理设置运行良好。流有一点问题(至少在我的情况下),但只需稍加调整即可使用。