文字 '/' を twython でストリーミング twitter api で使用するためにエンコードするのに苦労しています。エンコードなしで試行すると、「EUR/USD」はエラー コード401を返します。他の検索クエリでは正常に機能し、このエラーは発生しないことに注意してください。
私はこれをいくつかの方法で試しました。初め:
'EUR/USD'.replace('/','%2F')
しかし、検索では何も返されません。
私も試しました:
urllib.quote('EUR/USD', '')
print を使用した出力は同じ (EUR%2FUSD) ですが、検索ではまだ結果が返されません。
最後に、二重エンコーディングを試しました:
urllib.quote(urllib.quote('EUR/USD', ''),'')
私は EUR%252FUSD を取得しますが、まだ結果はありません。
さらに、EURUSD のみを検索する場合、検索は適切に機能しますが、ツイート自体で記号 $ (例: $EURUSD) が前に付いている場合に限られます。ドル記号がない場合、検索でもツイートが検出されません。(例: EURUSDのみ)
これがどのように機能するかです:
querystring = 'EURUSD'
auth = tweepy.OAuthHandler('key','secret')
auth.set_access_token('key','secret')
api = tweepy.API(auth)
class CustomStreamListener(tweepy.StreamListener):
def on_status(self, status):
pprint.pprint([status.user.name,removeNonAscii(status.text),status.lang])
def on_error(self, status_code):
print >> sys.stderr, 'Encountered error with status code:', status_code
return True # Don't kill the stream
def on_timeout(self):
print >> sys.stderr, 'Timeout...'
return True # Don't kill the stream
sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
sapi.filter(track=querystring, languages=['en'])
ここで何が起こっているのか、誰にも分かりますか?