使用Tweepy流推Twitter提要时,是否可以在on_data函数中返回完整的推文文本?
我已经尝试过并看到on_status函数用于流传输的解决方案。 on_status函数可以通过按照status.extended_tweet [“ full_text”]的方式执行操作来返回全文。但是,这似乎不适用于on_data函数,而且我还没有看到有人专门针对on_data询问此问题(除非我以某种方式错过了它)。那么,这里有人知道是否有任何方法可以使用on_data流式传输全文推文?
我已经看到有人说tweet_mode ='extended'可以工作,但是我注意到这种解决方案不适用于流推文。
类TwitterListener(StreamListener):
def __init__(self, fetchedFeedsFile):
self.fetchedFeedsFile = fetchedFeedsFile
def on_data(self, data):
try:
print(data)
with open(self.fetchedFeedsFile, 'a') as tf:
tf.write(data)
return True
except BaseException as e:
print("Error on_data: %s" % str(e))
return True
def on_error(self, status):
if status == 420:
return False
print(status)
我显示的代码使用on_data替代流推文并输出推文,但是它无法返回完整的推文。
答案 0 :(得分:1)
由于没有人回答我的问题,所以我自己做了一些进一步的研究和实验。我可以确认可以使用on_data获取全文。如果有人想使用on_data流式传输完整的tweet,则必须首先访问on_data函数返回的JSON。通常,JSON将包含一个名为“ text”的字符串,其中包含该推文,但是,如果一条推文太长(我相信超过140个字符?不确定),将有一个名为“ extended_tweet”的字段,其中包含一个名为“ full_text”的字符串。下面是我使用的on_data覆盖的摘录,它成功将完整尺寸的推文流式传输到文件。
ifelse(Race == 'Neither', Ethnicity, Race)
[1] "Hispanic or Latino" "Asian"
[3] "Not Hispanic or Latino" "Asian"
[5] "Neither"
然后,您可以将tweetStr输出到打印功能,文件或所需的任何内容中。