Tweepy如何在代理

时间:2016-04-22 10:43:01

标签: python proxy tweepy

我是python的新手所以无法用早期的帖子弄明白。我使用下面的代码示例来摄取twitter流,当我不在代理后面这工作正常,但当我落后于代理这不起作用。如果有人可以指导我如何在此代码中绕过代理

,那将会很有帮助
tp = TwitterHandler()
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = tweepy.Stream(auth, tp)

stream.filter(track=FILTER_WORDS_LIST)

3 个答案:

答案 0 :(得分:1)

我正在通过此链接开始使用tweepy - http://adilmoujahid.com/posts/2014/07/twitter-analytics/

我也遇到了代理问题。这就是我解决问题的方法 -

在Windows终端类型

set http_proxy=http://username:password@host:port

set https_proxy=https://username:password@host:port

然后运行上面链接中给出的文件 -

python twitter_streaming.py

设置全局代理环境变量是关键

我希望它有所帮助

答案 1 :(得分:1)

这就是我在代理后面运行tweepy所做的:

import tweepy

class ProxyStream(tweepy.Stream):

    def new_session(self):

        super().new_session() # PY2: super(ProxyStream, self).new_session()
        self.session.proxies = {
            'https': 'http://proxy1:3128',
            'http': 'http://proxy1:3128'
        }

现在,使用ProxyStream代替tweepy.Stream可以解决问题:

auth = tweepy.OAuthHandler('TWITTER_CONSUMER_KEY', 'TWITTER_CONSUMER_SECRET')
auth.set_access_token('TWITTER_ACCESS_TOKEN', 'TWITTER_ACCESS_TOKEN_SECRET')
stream = ProxyStream(auth, self, async=True)

设置HTTPS_PROXY变量应该有效,但在某些情况下,我们需要针对外部资源的特定配置,例如twitter。

答案 2 :(得分:1)

您可以在代码中进行设置:

res.data