Twitter API:检查推文是否为转推

29

我找到了这个问题。然而,我认为在1.1版API上已经改变了。

如果我使用search/tweets方法,如何查看推文是否为转推? 我发现retweeted字段始终返回false。还有其他字段可以用于此答案吗?

10个回答

47
如果是转推,推文将包含一个名为retweeted_status的属性。完整起见,如果推文不是转推,则retweeted_status将不会出现。更多信息请参见:推文

6
可以简单地使用 hasattr(tweet, 'retweeted_status') 进行判断,其中的 tweettweepy.Status 类的实例。 - lucidyan
1
Twitter API v2 怎么样? - Ryan Aquino

4

通过简单地检查属性名称

"retweeted_status"

如果找不到,则不是转发。


3
正如@Joe Mayo所说,检查状态对象上的retweeted_status键。
我有一个示例未被@Apoorv Ashutosh的建议所捕捉。
参见:https://twitter.com/gppvt/status/474162466776449024,这将重定向(因为它是一条转推)到原始推文。但是,如果通过Twitter API获取此推文,则会有retweeted_status。请注意,文本不包含“RT”。

2
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"

2

如果转发不是使用转发按钮而是通过RT进行的,则retweeted字段为false,因此在这种情况下,只需搜索所有推文的"text"字段以查找此模式

RT @

这种模式可能有所帮助,但我认为没有其他功能可以实现。


1
这还不够,用户可能会在他们的推文中输入“RT @”,但从Twitter API的角度来看,这并不是真正的转发。 - anothermh
这是推特官方实现RT之前的“老式”RT方式。如上所述,存在“retweeted_status”属性表示该推文是一个RT。另请参阅Twitter文档:https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/tweet-object。 - Tim F

1

确保你的“转推”不是另一条推文的引用。在这种情况下,我必须使用quoted_status字段来获取原始推文,而不是retweeted_status


1

正如其他人提到的那样,你可以检查响应子字段中是否存在retweeted_status属性。

但是,根据当前版本的API, 每个推文对象都有一个字段retweeted,它存储一个布尔值(真或假),告诉你一个推文是否被转发。


1
对于那些使用Hydrator1并依赖其导出的CSV格式的水合JSONL文件的人们:您可以检查reweet_id(不是版本0.0.12中的拼写错误),如果它是NA,则是我发现的原始推文。请保留HTML标签。
original_twitter_tweets = twitter_csv_data %>% filter(is.na(reweet_id))

1

仅补充一点(使用 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

0

我注意到转推与普通推文的区别在于前面有“RT @...”这一行。

以下 Python 代码可用于识别它们:

tweettext = str( tweet.text.lower())
if tweettext.startswith("rt @") == True:
    print(tweet.id)

Tweet对象是推文变量。 Tweepy是另一个工具,您可以使用它更轻松地管理Twitter API。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接