Tweepy - Exclure Les Retweets
But ultime est d'utiliser le tweepy de recherche de l'api pour se concentrer sur des sujets (j'.e menu fixe) et d'EXCLURE les retweets. J'ai regardé les autres threads qui mentionnent l'exclusion de retweets, mais ils étaient complètement applicable. J'ai essayé d'intégrer ce que j'ai appris dans le code ci-dessous mais je crois que la "si ce n'est" morceau de code est dans le mauvais endroit. Toute aide est grandement appréciée.
#!/usr/bin/python
import tweepy
import csv #Import csv
import os
# Consumer keys and access tokens, used for OAuth
consumer_key = 'MINE'
consumer_secret = 'MINE'
access_token = 'MINE'
access_token_secret = 'MINE'
# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Open/Create a file to append data
csvFile = open('docker1.csv', 'a')
#Use csv Writer
csvWriter = csv.writer(csvFile)
ids = set()
for tweet in tweepy.Cursor(api.search,
q="docker",
Since="2016-08-09",
#until="2014-02-15",
lang="en").items(5000000):
if not tweet['retweeted'] and 'RT @' not in tweet['text']:
#Write a row to the csv file/I use encode utf-8
csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8'), tweet.favorite_count, tweet.retweet_count, tweet.id, tweet.user.screen_name])
#print "...%s tweets downloaded so far" % (len(tweet.id))
ids.add(tweet.id) # add new id
print ("number of unique ids seen so far: {}",format(len(ids)))
csvFile.close()
est-il de toute erreur que vous obtenez? ou vous êtes simplement à la recherche pour l'optimisation du code?
obtenir de multiples erreurs ... Syntaxe Incorrecte, "Statut" d'objet n'a pas d'attribut '--getitem--' ... à Partir de recherches sur d'autres postes, je sais que le
pouvez-vous poster une capture d'écran de l'erreur?
juste attaché un message d'erreur à mon post original
obtenir de multiples erreurs ... Syntaxe Incorrecte, "Statut" d'objet n'a pas d'attribut '--getitem--' ... à Partir de recherches sur d'autres postes, je sais que le
if not tweet['retweeted'] and 'RT @' not in tweet['text']
est ce que je veux, mais je ne suis pas sûr exactement où le placer dans le code pour obtenir ce dont j'ai besoinpouvez-vous poster une capture d'écran de l'erreur?
juste attaché un message d'erreur à mon post original
OriginalL'auteur hansolo | 2016-08-10
Vous devez vous connecter pour publier un commentaire.
Donc
tweet
est un objet n'est pas un JSON ou dict, vous ne devriez pas y accéder commetweet['retweeted']
ettweet['text']
Au lieu d'utiliser cette ligne :
Ou pour votre cas d'utilisation :
De filtrage au niveau API:
q='your_search -filter:retweets'
en lire plus sur ce ici.
if (not tweet.retweeted) and ('RT @' not in tweet.text) and (tweet.favorite_count > 0):
oui ça serait bien comme ça, si elle a aidé veuillez accpet la réponse et upvote.
OriginalL'auteur harshil9968
En plus de la accepté de répondre, je voudrais vous suggérer de modifier la demande que vous faites, de
q="docker"
àq="docker -filter:retweets"
Cela permettra d'éviter la plupart des retweets de même apparaître dans les résultats.
OriginalL'auteur Efferalgan