tweepyを使用してTwitterのストリーミングAPIにアクセスして正しく動作させるためのサンプルコードを取得できません。私はGitHub(バージョン1.9)とPython 2.7.1のtweepyの最近のクローンを使用しています。tweepyを使用してTwitterのストリーミングAPIにアクセスする
私が追跡のためのテスト用語として「ツイッター」を使って、それぞれの場合に、3つのソースからのサンプルコードを試してみた:How to Capture Tweets in Real-time with Twitter's Streaming API
アンドリュー・ロビンソンさんのブログ:
O'Rilleyは、コードを回答:Using Tweepy to access the Twitter Stream
(アンドリュー・ロビンソンが行っているように、容易にOAuth認証をサポートするように変更することができる)GitHubの上Tweepy例リポジトリ:streamwatcher.py
すべての3つのケースでは、認証は成功し、エラーは発生せず、メインプログラムのループは問題なく実行されているようです。私はネットワーク使用量が約200KB/sにジャンプし、Pythonプロセスが100%近くのCPU使用率にジャンプするので、データが受信されていると思います。ただし、コンソールに何も出力されません。
tweepyのStreamクラスがなんらかの理由でカスタムコールバックメソッドを呼び出さないと思われます。私は、呼び出されるたびに出力を生成するために各例のコールバックメソッドを書き直そうとしましたが、これはこれを確認しているようです。これは(もちろん私のアプリのキーを削除して、)アンドリュー・ロビンソンのブログエントリに基づいたテストコードの1つの非常に単純なビットです:私は間違っ
# -*- coding: utf-8 -*-
import tweepy
consumer_key = ''
consumer_secret = ''
access_token_key = ''
access_token_secret = ''
auth1 = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth1.set_access_token(access_token_key, access_token_secret)
class StreamListener(tweepy.StreamListener):
def on_status(self, tweet):
print 'Ran on_status'
def on_error(self, status_code):
print 'Error: ' + repr(status_code)
return False
def on_data(self, data):
print 'Ok, this is actually running'
l = StreamListener()
streamer = tweepy.Stream(auth=auth1, listener=l)
#setTerms = ['hello', 'goodbye', 'goodnight', 'good morning']
setTerms = ['twitter']
streamer.filter(track = setTerms)
何をしているのですか?
感謝!魅力のように働いた。また、GitHubの問題リストを確認する提案に感謝します - それはおそらく私が本当に知る必要があったものです;-) –