J'essaie d'interroger les tweets d'un utilisateur spécifié avec un mot clé spécifié inclus dans le texte du tweet. Voici mon code:Interroger l'état de Twitter en utilisant Python et Tweepy
# Import Tweepy, sleep, credentials.py
import tweepy
from time import sleep
from credentials import *
# Access and authorize our Twitter credentials from credentials.py
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
SCREEN_NAME = "BachelorABC"
KEYWORD = "TheBachelor"
def twtr2():
raw_tweets = tweepy.Cursor(api.search, q=KEYWORD, lang="en").items(50)
for tweet in raw_tweets:
if tweet['user']['screen_name'] == SCREEN_NAME:
print tweet
twtr2()
Je reçois le message d'erreur comme ci-dessous:
Traceback (most recent call last):
File "test2.py", line 19, in <module>
twtr2()
File "test2.py", line 17, in twtr2
if tweet['user']['screen_name'] == SCREEN_NAME:
TypeError: 'Status' object has no attribute '__getitem__'
Je googlé beaucoup et je pensais que peut-être que je devais sauver JSON Twitter en python premier, alors j'ai essayé les éléments suivants :
import tweepy, json
from time import sleep
from credentials import *
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
SCREEN_NAME = "BachelorABC"
KEYWORD = "TheBachelor"
raw_tweets = tweepy.Cursor(api.search, q=KEYWORD, lang="en").items(50)
for tweet in raw_tweets:
load_tweet = json.loads(tweet)
if load_tweet['user']['screen_name'] == SCREEN_NAME:
print tweet
Cependant, le résultat est triste:
Traceback (most recent call last):
File "test2.py", line 35, in <module>
load_tweet = json.loads(tweet)
File "C:\Python27\lib\json\__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
Est-ce que quelqu'un sait ce qui ne va pas avec mon code? Et pouvez-vous m'aider à le réparer?
Merci d'avance!
Merci pour votre temps @ethanchewy Je suis à la recherche de tweets avec ** spécifié ** screen_name et mot-clé. Votre réponse concerne les 20 premiers tweets en général. Avez-vous une idée de localiser les tweets avec ces conditions? – Counter10000
@LinguisticsStudent Jetez un coup d'œil au dernier extrait de code situé ici: https://github.com/tweepy/tweepy/blob/master/docs/code_snippet.rst. Vous stockez les screen_names dans une liste, puis recherchez dans cette liste un certain nom d'écran. Notez que Twitter a des limitations strictes pour l'interrogation. – ethanchewy
Merci @ethanchewy. La page que vous citez ci-dessus est de récupérer le nom d'écran du suiveur ou de l'utilisateur, pas le statut. Je vais mettre à jour si je trouve une réponse plus tard. – Counter10000