J'essaie de récupérer les tweets de chronologie d'un utilisateur en utilisant tweepy (Python 3.6). Maintenant, j'ai trouvé un code avec lequel je peux le faire et les enregistrer sous forme CVS. Cela fonctionne sans problèmes lors de la récupération des tweets anglais, mais les tweets écrits en arabe sont affichés de cette façon: "b '\ xd9 \ x82 \ xd8 \ xaa \ xd8 \ xa7 \ xd9 \ x84 \ x ...". J'ai parcouru plusieurs forums et j'ai vu ce problème être soulevé plusieurs fois, mais je n'ai pas été capable de trouver une solution. J'ai pensé que ça devait avoir quelque chose à voir avec l'encodage utf-8, mais je ne sais pas comment manipuler le code. Quelqu'un a une suggestion? MERCI!Enregistrement de tweets arabes à partir de tweepy dans CVS
ceci est mon code:
>>> import tweepy
>>> import csv
>>> consumer_key = "..."
>>> consumer_secret = "..."
>>> access_key = "..."
>>> access_secret = "..."
>>> def get_all_tweets(screen_name):
#authorize twitter, initialize tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
#initialize a list to hold all the tweepy Tweets
alltweets = []
#make initial request for most recent tweets (200 is the maximum allowed count)
new_tweets = api.user_timeline(screen_name = screen_name,count=200)
#save most recent tweets
alltweets.extend(new_tweets)
#save the id of the oldest tweet less one
oldest = alltweets[-1].id - 1
#keep grabbing tweets until there are no tweets left to grab
while len(new_tweets) > 0:
print("getting tweets before %s" % (oldest))
#all subsiquent requests use the max_id param to prevent duplicates
new_tweets = api.user_timeline(screen_name = screen_name,count=200,max_id=oldest)
#save most recent tweets
alltweets.extend(new_tweets)
#update the id of the oldest tweet less one
oldest = alltweets[-1].id - 1
print("...%s tweets downloaded so far" % (len(alltweets)))
#transform the tweepy tweets into a 2D array that will populate the csv
outtweets = [[tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in alltweets]
#write the csv
with open('%s_tweets.csv' % screen_name, 'w') as f:
writer = csv.writer(f)
writer.writerow(["id","created_at","text"])
writer.writerows(outtweets)
pass
>>> if __name__ == '__main__':
#pass in the username of the account you want to download
get_all_tweets("#username")
Salut! merci beaucoup pour cette clarification. Malheureusement, maintenant, quand j'ouvre le fichier CSV, les caractères arabes apparaissent comme: بس ØØØØد¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ –
Qu'est-ce que vous utilisez pour ouvrir le fichier CSV? –
Oh attends. Bonne question! J'utilisais Excel, mais je me suis rendu compte que ça fonctionnait bien avec TextEdit! Incroyable, merci! Avez-vous par hasard savoir pourquoi cela se produit avec Excel et comment il peut être surmonté? –