J'ai besoin de recevoir des tweets pour mon application, mais tweepy ne peut pas "trouver des pistes. J'ai" cherché un site et je ne peux pas trouver pourquoi il se produit. Il y a mon code. Quelques idées?
class listener(StreamListener):
def __init__(self, api=None):
self.api = api or API()
self.n = 0
self.m = 100
def on_data(self, data):
self.n = self.n+1
if self.n < self.m:
lang = data.split("","lang":"")[1].split("","")
lang = lang[0][0:2]
#if(guessLanguageName(text_tweet) == "English"):
if(lang == "en"):
tweet = data.split(""id_str":"")[1].split("","source":"")[0]
text_tweet = tweet.split("","text":"")[1]
id_tweet = tweet.split("","text":"")[0]
out = id_tweet +" "+ text_tweet
print out + "n"
tweets = open("tweets.txt", "a")
tweets.write(out)
tweets.write("n")
tweets.close()
return True
else:
return False
def on_error(self, status):
print status
auth = tweepy.OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = tweepy.streaming.Stream(auth, listener())
archive = open("hashtag.txt", "r")
twitterStream.filter(track=["sony xperia u"])
Réponses:
1 pour la réponse № 1J'ai trouvé une meilleure solution avec api.cursor:
import tweepy
def twitter_fetch(search_name,maxnumtweets):
consumer_token = ""
consumer_secret = ""
access_token = ""
access_secret = ""
auth = tweepy.OAuthHandler(consumer_token,consumer_secret)
auth.set_access_token(access_token,access_secret)
api = tweepy.API(auth)
count = 0
count_url = 0
count_url_total = 0
count_tweets = 0
try:
for tweet in tweepy.Cursor(api.search,q=(search_name), lang = "en").items(maxnumtweets):
count_url = len(tweet.entities["urls"])
count_url_total += count_url
count +=1
if count_url > 0:
count_check_text = 0
text = tweet.text
print "urls: "
for url in tweet.entities["urls"]:
print url["url"]
count_check_text += 1
no_expanded_urls.write(url["url"].encode("utf-8"))
no_expanded_urls.write("n")
out = tweet.id_str +" " + text
print "nid_str and tweet: "
print out.encode("utf-8")
tweets.write(out.encode("utf-8"))
tweets.write("n")
count_tweets+=1
print "-------------------------------------------------------------"
print "-------------------------------------------------------------"
print "-------------------------------------------------------------"
tweets.close()
no_expanded_urls.close()
print "Searched for: " + hashtag
print "Count tweets:"
print count_tweets
print "Count urls:"
print count_url_total
print count
except tweepy.TweepError as e:
print "error"
if __name__ == "__main__":
archive = open("hashtag.txt", "r")
hashtag = archive.readline()
archive.close()
count_tweets = 0
max_tweets = 50
tweets = open("tweets.txt", "a")
tweets = open("tweets.txt", "w")
no_expanded_urls = open("noExpandedUrls.txt", "w")
twitter_fetch(hashtag, max_tweets)