除了已经返回的favorite_count和retweet_count之外,还有什么办法可以使用GET状态/ user_timeline来获取推文的评论/回复计数吗?
谢谢!
此功能自2011年起已被请求,但到目前为止还没有用于回复计数的公共API,因此无法直接获取推文的回复计数。
但是使用Search API存在一种解决方法:
您可以执行查询:q = "to:{author_screen_name}", sinceId = {tweet_id}
,而author_screen_name
是屏幕名称(如@shiftpsh中的'shiftpsh'),tweet_id
是您尝试获取回复计数的推文的ID。
循环浏览结果中的所有推文并过滤in_reply_to_status_id_str
是{tweet_id}
。
请注意,标准搜索API的搜索索引限制为7天(如果付费则为30天),因此生成的回复计数可能不准确。
Twitter仍然没有一个完美的解决方案。
与shiftpsh的答案类似,使用Node,您可以查询https://twitter.com/${screen_name}/status/${tweet_id}
并使用JavaScript中的JSDOM等模块将HTML解析为DOM对象。使用该对象,您可以使用普通文档查询功能来提取回复计数(以及许多其他数据点)。
var repliesCount = parseInt(document.getElementsByClassName("permalink-tweet-container")[0]
.getElementsByClassName("ProfileTweet-action--reply")[0]
.getElementsByClassName("ProfileTweet-actionCount")[0]
.getAttribute("data-tweet-stat-count"));
此解决方案是一种网络抓取形式,因此在使用这些类型的解决方案时请负责。
编辑:刚刚注意到您的标签是针对Java的,jsoup是一个很好的库,用于将HTML解析为对象并使用类似jQuery的方法遍历它。