Python 从Twitter检索阿拉伯语数据
我想使用Python 从Twitter检索阿拉伯语数据,python,twitter,unicode,utf-8,tweepy,Python,Twitter,Unicode,Utf 8,Tweepy,我想使用Python3.5和Tweepy从Twitter检索阿拉伯语数据 我发现一个可以很好地使用英语或法语的程序,但是对于阿拉伯语,tweet是解码的。 对于exp: \u04f\u04e\u043e\u0430\u0430\u044f 以下是节目: from tweepy import Stream from tweepy import OAuthHandler from tweepy.streaming import StreamListener ConsumerKey = 'Your_
Python3.5
和Tweepy
从Twitter检索阿拉伯语数据
我发现一个可以很好地使用英语或法语的程序,但是对于阿拉伯语,tweet是解码的。
对于exp:
\u04f\u04e\u043e\u0430\u0430\u044f
以下是节目:
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
ConsumerKey = 'Your_Consumer_Key'
ConsumerSecret = 'Your_Consumer_Secret'
AccessToken = 'Your_Access_Token'
AccessTokenSecret = 'Your_Access_Token_Secret'
tweets = open('Tweets.txt',mode='w',encoding="utf8",newline=None)
class listener(StreamListener) :
def on_data (self , data) :
tweets.write(data)
print (data)
return True
def on_error (self , status) :
print (status)
auth = OAuthHandler (ConsumerKey , ConsumerSecret)
auth.set_access_token(AccessToken , AccessTokenSecret)
twitterStream = Stream(auth , listener())
twitterStream.filter(track=['أحوال','الطقس','2016'])
tweets.close()
我使用了一些函数,但出现了错误:
- data.decode()我得到一个错误AttributeError:'str'对象没有属性'decode'
- u(数据)我收到一个错误名称错误:名称“u”未定义
- track=[unicode('2016','utf-8')、unicode('1575; utf-8'、'utf-8')、unicode('1571; utf-8'、'utf-8')]我得到一个错误名称错误:名称“unicode”未定义
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import json
import sys
ConsumerKey = 'Your_Consumer_Key'
ConsumerSecret = 'Your_Consumer_Secret'
AccessToken = 'Your_Access_Token'
AccessTokenSecret = 'Your_Access_Token_Secret'
non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)
#tweets = open('Tweets.txt',mode='w',encoding="utf8",newline=None)
class listener(StreamListener) :
def on_data (self , data):
try:
tweet = json.loads(data)['text']
print(tweet.translate(non_bmp_map))
except KeyError:
pass
def on_error(self , status):
print(status)
auth = OAuthHandler (ConsumerKey , ConsumerSecret)
auth.set_access_token(AccessToken , AccessTokenSecret)
twitterStream = Stream(auth , listener())
twitterStream.filter(track=['الله'])
#tweets.close()
对于您发布的程序,它对于Python3看起来是正确的(不过,我会删除
newline=None
)。你有错误吗?例如,Windows控制台上的print
通常会限制所支持的Unicode字符,因此提及您的Python版本、操作系统、运行时环境(控制台或某些IDE)并对任何错误进行完整的回溯也是很重要的。@MarkTolonen我找到了一个解决方案,它应该可以工作:)