如何在搜索API中排除转发和回复?
我正在尝试使用搜索API从Twitter获取动态,但结果中包含了回复和转发。
因此,我想排除回复和转发。
有人能帮我吗?
这是我的URL:
https://api.twitter.com/1.1/search/tweets.json?q=from:rioferdy5&count=20&result_type=recent
如何在搜索API中排除转发和回复?
我正在尝试使用搜索API从Twitter获取动态,但结果中包含了回复和转发。
因此,我想排除回复和转发。
有人能帮我吗?
这是我的URL:
https://api.twitter.com/1.1/search/tweets.json?q=from:rioferdy5&count=20&result_type=recent
我认为以上内容是不正确的,你可以在搜索API中使用过滤器,但是文档非常缺乏(甚至不存在?)。
您的查询将变为:
?q=from:rioferdy AND -filter:retweets AND -filter:replies&count=20&result_type=recent
在这里获取了更多的筛选提示:如何掌握Twitter搜索:基本布尔运算符和筛选器
虽然这是一篇旧帖子,但仍有人可能会遇到它。
大多数查询运算符在此处记录:https://dev.twitter.com/rest/public/search
但是对于search/tweets方法,您还可以指定exclude:replies
和/或exclude:retweets
以从结果中过滤回复和转发。
只需在API控制台工具中测试它,自己看看即可。
额外奖励:另一个未记录的查询运算符是filter:verified
,用于获取来自已验证用户的推文。
示例查询:cats filter:vine filter:verified exclude:replies exclude:retweets
exclude:retweets
仍然有效,但它也会排除包含 #RT
标签的推文。 - Viktor Brešan-is:retweet
排除转发-is:quote
排除引用推文-is:reply
排除回复https://developer.twitter.com/en/docs/tweets/rules-and-filtering/overview/standard-operators
这里有一个相当全面的示例列表:),而转推位于中间位置。
-filter:retweets
是的,在搜索API中,您可以通过在搜索字符串(q)中添加-RT
来排除转推内容。例如:search?q="#demo -RT"
-RT
还是_RT
? - Canispuppy -filter:retweets containing “puppy”, filtering out retweets
https://developer.twitter.com/en/docs/tweets/rules-and-filtering/overview/standard-operators.html
在寻找如何在新的v2 API中执行此操作时找到了这个,现在是 puppy -is:retweet -is:reply
(不再需要AND
)
https://developer.twitter.com/en/docs/twitter-api/tweets/search/integrate/build-a-query#list
retweeted_status
类型为“object”的推文(表示它们是来自其他人的转推),或者保留那些类型为“undefined”的推文(表示它们是原创)。retweet_count = 0
的问题在于像@pattonoswalt这样的用户会在他的所有推文上进行转推。因此,即使它们都是原创,计数也永远不会为零。
您可以在循环中使用以下内容:
if(typeof tweets[i].retweeted_status === 'object') {tweets.splice(i,1);}
或者
if(typeof tweets[i].retweeted_status !== 'undefined') {tweets.splice(i,1);}
没有直接的方法从API中排除转推和回复。但是,您可以过滤掉已经获取的结果。
对于回复,您可以检查从API获取的in_reply_to_status_id
字段是否为null,这意味着它不是回复,否则如果它包含一个id,则是回复。
对于转推,如果您想要没有被转推过的帖子,您可以检查retweet_count
=0,或者如果您想要没有被您验证的用户转推过的帖子,您可以检查retweeted
=false。