如何使用Tweepy V2 API查询高点赞高转发的热门原创推文
Tweepy V2 高热度原创推文检索方案
- 首先明确:Tweepy V2 完全支持热门内容筛选,返回大量低互动推文的核心原因是接口默认按发布时间倒序返回最新结果,没有开启热度排序逻辑。
- 核心调整点1:调用搜索接口时新增
sort_order参数,传入值relevancy,接口就会优先返回平台算法判定的高互动、高相关度的热门内容,直接对标V1版本的热门推文搜索能力;默认值recency就是常规使用的最新时间排序模式。 - 核心调整点2:Twitter V2 API 原生不支持在查询语句里直接设置“转发量≥N”“点赞量≥N”这类硬阈值(互动数据实时变动,查询语法无对应过滤规则),拿到返回结果后需要自己加一层二次过滤,根据业务要求的点赞、转发数阈值筛掉低互动内容即可。
- 权限注意:
search_all_tweets全量历史搜索接口仅对持有学术研究资质的开发者开放,普通开发者账号只能调用search_recent_tweets检索最近7天内的推文,两个接口都支持sort_order参数。
修改后的可参考代码
# 保留原创、指定语言、目标话题的基础过滤规则 query_str = "#chosen_topic lang:en -is:retweet -is:reply" client = tweepy.Client( bearer_token=config.BEARER_TOKEN, consumer_key=config.CONSUMER_KEY, consumer_secret=config.CONSUMER_SECRET, access_token=config.ACCESS_TOKEN, access_token_secret=config.ACCESS_TOKEN_SECRET ) # 根据自身账号权限选择接口:学术权限用search_all_tweets,普通权限用search_recent_tweets # 新增sort_order="relevancy"开启热度优先排序 for tweet_batch in tweepy.Paginator( client.search_recent_tweets, query=query_str, sort_order="relevancy", tweet_fields=['context_annotations','created_at', 'public_metrics','author_id', 'lang', 'geo', 'entities'], user_fields=['name','username','location','verified','description'], max_results=100, expansions='author_id' ): tweet_data = tweet_batch.data if not tweet_data: continue for tweet in tweet_data: metrics = tweet.public_metrics # 替换为业务实际要求的互动阈值,例:点赞≥1000、转发≥200才保留 if metrics['like_count'] < 1000 or metrics['retweet_count'] < 200: continue # 后续处理符合要求的高互动推文 print(f"点赞数:{metrics['like_count']},转发数:{metrics['retweet_count']},回复数:{metrics['reply_count']}")
补充提示:如果使用
search_all_tweets接口,可配合start_time和end_time参数限定检索时间范围,减少无关数据拉取量。
内容的提问来源于stack exchange,提问作者Stephen Wong
相关产品推荐
相关产品推荐

