我想设置最大推文数量限制
I want to set the limit of maximum number of Tweets
我对 python 很陌生。我正在使用 tweepy 库通过 Twitter 流 API 抓取推文。但似乎在 运行 一个小时后连接中断了。我想知道在连接断开之前是否有任何方法可以从 运行 停止程序。简而言之,限制推文。
我尝试了 .items 方法,但它没有用,因为它给出了名称错误。
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
ckey="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
csecret="xxxxxxxxxxxxxxxxxxxxxx"
atoken="xxxxxxxxxxxxxxxxxxxxx"
asecret="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
class listener(StreamListener):
def on_data(self, data):
print(data)
return(True)
def on_error(self, status):
print status
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track=["Obama"])
谢谢
要解决您的连接问题,请参考以下内容:
要实现推文限制,您可以 return False
从 class def on_data
方法中获取所需数量的推文。在 init
方法中设置推文的最大数量,并使用 try and except
进行错误处理。这可能会有所帮助
def __init__(self):
super().__init__()
self.max_tweets = 10
self.tweet_count = 0
def on_data(self, data):
try:
data
except TypeError:
print(completed)
else:
self.tweet_count+=1
if(self.tweet_count==self.max_tweets):
print("completed")
return(False)
else:
decoded = json.loads(data)
我对 python 很陌生。我正在使用 tweepy 库通过 Twitter 流 API 抓取推文。但似乎在 运行 一个小时后连接中断了。我想知道在连接断开之前是否有任何方法可以从 运行 停止程序。简而言之,限制推文。
我尝试了 .items 方法,但它没有用,因为它给出了名称错误。
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
ckey="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
csecret="xxxxxxxxxxxxxxxxxxxxxx"
atoken="xxxxxxxxxxxxxxxxxxxxx"
asecret="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
class listener(StreamListener):
def on_data(self, data):
print(data)
return(True)
def on_error(self, status):
print status
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track=["Obama"])
谢谢
要解决您的连接问题,请参考以下内容:
要实现推文限制,您可以 return False
从 class def on_data
方法中获取所需数量的推文。在 init
方法中设置推文的最大数量,并使用 try and except
进行错误处理。这可能会有所帮助
def __init__(self):
super().__init__()
self.max_tweets = 10
self.tweet_count = 0
def on_data(self, data):
try:
data
except TypeError:
print(completed)
else:
self.tweet_count+=1
if(self.tweet_count==self.max_tweets):
print("completed")
return(False)
else:
decoded = json.loads(data)