为tweepy编码特殊字符时出现问题

2024-04-24 12:21:15 发布

您现在位置:Python中文网/ 问答频道 /正文

为了在twython的twitter流api中使用字符“/”编码,我遇到了很多麻烦。当它在没有编码的情况下尝试时,“EUR/USD”会给出一个错误代码401。注意,对于其他搜索查询,它正常工作,不会产生此错误。在

我试过用几种方法来做这个。 第一个:

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

但是搜索没有返回任何信息。在

我也试过:

^{pr2}$

虽然print的输出是相同的(EUR%2fuld),但是搜索仍然没有返回任何结果。在

最后我尝试了双重编码:

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

我拿到了252FUSD欧元,但还是没有结果。在

此外,当只搜索eursud时,search确实可以正常工作,但前提是tweet中的符号$(例如$eursud)。 万一美元符号丢失,搜索也不会检测到该推特。(例如,欧元兑美元)

工作原理如下:

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'])

有人知道这里会发生什么吗?在


Tags: selfauthapi编码ondefstatuscode