为tweepy编码特殊字符的麻烦

时间:2013-10-17 01:57:59

标签: python twitter tweepy twitter-streaming-api

我在编码字符'/'时遇到了很多麻烦,以便在使用twython的流式传输Twitter api时使用它。在没有编码的情况下尝试时,'EUR / USD'会给出错误代码401。请注意,使用其他搜索查询,它可以正常工作,不会产生此错误。

我尝试过几种方式。 第一:

'EUR/USD'.replace('/','%2F')

但搜索没有返回任何内容。

我也尝试过:

urllib.quote('EUR/USD', '')

虽然打印输出相同(EUR%2FUSD),但搜索仍未返回任何结果。

最后我尝试了双重编码:

urllib.quote(urllib.quote('EUR/USD', ''),'')

我获得了EUR%252FUSD,但仍然没有结果。

此外,在搜索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'])

任何人都知道这里会发生什么?

0 个答案:

没有答案