1

文字 '/' を 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'])

ここで何が起こっているのか、誰にも分かりますか?

4

0 に答える 0