Cela me rend fou. Comme vous pouvez le voir ci-dessous, je suis en essayant pour utiliser une simple boucle while pour effectuer quelques recherches tweepy et les ajouter dans une trame de données. Pour une raison quelconque cependant, après avoir tiré le premier ensemble de 100 tweets, il répète simplement cet ensemble au lieu d'effectuer une nouvelle recherche. Tout avis serait grandement apprécié.Tweepy Recherche w/While Loop
import sys
import csv
import pandas as pd
import tweepy
from tweepy import OAuthHandler
consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
num_results = 200
result_count = 0
last_id = None
df = pd.DataFrame(columns=['Name', 'Location', 'Followers', 'Text', 'Coorinates'])
while result_count < num_results:
result = api.search(q='',count=100, geocode= "38.996918,-104.995826,190mi", since_id = last_id)
for tweet in result:
user = tweet.user
last_id = tweet.id_str
name = user.name
friends = user.friends_count
followers = user.followers_count
text = tweet.text.encode('utf-8')
location = user.location
coordinates = tweet.coordinates
df.loc[result_count] = pd.Series({'Name':name, 'Location':location, 'Followers':followers, 'Text':text, 'Coordinates':coordinates})
print(text)
result_count += 1
# Save to Excel
print("Writing all tables to Excel...")
df.to_csv('out.csv')
print("Excel Export Complete.")
J'ai essayé d'exclure le paramètre 'count' de ma requête de recherche mais cela ne retournerait que 15 résultats. Ma compréhension de la tweepy docs est qu'en incluant le paramètre 'count' je peux prendre cela jusqu'à 100 et ensuite faire 15 demandes pour compiler plus de résultats. Je crois que ces deux limites sont appliquées par l'API Twitter, oui? Je pensais aussi que le paramètre 'since_id' était là pour m'empêcher de tirer encore et encore les mêmes 100 premiers résultats? Je songe à passer au flux pour obtenir les résultats, mais mon but est de rassembler une sélection "aléatoire" de tweets et d'injecter du temps. – bengen343
Désolé pour la réponse tardive, btw, où avez-vous lu environ 15 demandes avec le paramètre count? Peut-être que vous pouvez essayer de supprimer le paramètre since_id puisque renvoie uniquement les statuts avec un ID supérieur à (c'est-à-dire, plus récent que) l'ID spécifié. – Giordano