0

Twitter の Python ラッパーであるTweepyを使用しています。Twitter アカウントを更新する小さな GUI アプリケーションを Python で作成しています。

現在、Twitter に接続できるかどうかをテストしているだけなので、test() 呼び出しを使用しました。Squid Proxy サーバーの背後にいます。作業を完了するには、スニペットにどのような変更を加える必要がありますか?

bash シェルで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 は、リクエストの送信に「requests」パッケージを使用します。詳細については、 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は urllib がマージされた tweepy を提供します。プロキシ設定はうまく機能します。ストリームには少し問題がありますが (少なくとも私の場合は)、少し調整するだけで使用できます。

于 2013-04-06T17:02:01.180 に答える