我找到了这个问题。然而,我认为在1.1版API上已经改变了。
如果我使用search/tweets
方法,如何查看推文是否为转推?
我发现retweeted
字段始终返回false
。还有其他字段可以用于此答案吗?
通过简单地检查属性名称
"retweeted_status"
如果找不到,则不是转发。
retweeted_status
键。retweeted_status
。请注意,文本不包含“RT”。retweeted_status
属性将存在于被转发的推文中,否则你将会收到AttributeError
错误。如果你想要摆脱被转发的推文:def on_status(self, status):
try:
print "Retweeted ************* \n" + str(status.retweeted_status)
return
except AttributeError:
print "there is no attribut with name retweeted_status"
如果转发不是使用转发按钮而是通过RT进行的,则retweeted字段为false,因此在这种情况下,只需搜索所有推文的"text"字段以查找此模式
RT @
这种模式可能有所帮助,但我认为没有其他功能可以实现。
确保你的“转推”不是另一条推文的引用。在这种情况下,我必须使用quoted_status
字段来获取原始推文,而不是retweeted_status
。
正如其他人提到的那样,你可以检查响应子字段中是否存在retweeted_status
属性。
但是,根据当前版本的API, 每个推文对象都有一个字段retweeted
,它存储一个布尔值(真或假),告诉你一个推文是否被转发。
original_twitter_tweets = twitter_csv_data %>% filter(is.na(reweet_id))
仅补充一点(使用 Twitter gem(Ruby 语言))。
您可以通过检查推文,然后从 retweeted_status 哈希中获取所需内容来检查它是否为转发。
t = client.status(#########) #function that obtains tweet based on ID where # = tweet ID
puts t.retweeted_status? # returns true or false
t.retweeted_status # returns the actual hash for that
我注意到转推与普通推文的区别在于前面有“RT @...”这一行。
以下 Python 代码可用于识别它们:
tweettext = str( tweet.text.lower())
if tweettext.startswith("rt @") == True:
print(tweet.id)
Tweet对象是推文变量。 Tweepy是另一个工具,您可以使用它更轻松地管理Twitter API。
hasattr(tweet, 'retweeted_status')
进行判断,其中的tweet
是tweepy.Status
类的实例。 - lucidyan