如何利用Tweepy在Python中通过回复推文ID获取父推文ID
嘿,这个问题我刚好熟!用Tweepy获取回复推文的父ID其实挺简单的,分两种版本情况给你讲,推荐用最新的V2版本哦:
使用Tweepy V2版本(官方推荐)
Twitter API V2是目前的主推版本,获取父推文ID的逻辑清晰,需要通过referenced_tweets字段来提取:
- 先确保安装了最新版Tweepy:
pip install tweepy --upgrade
- 编写代码实现:
你需要提前准备好Bearer Token(可以在Twitter开发者平台创建项目获取),然后通过get_tweet方法获取推文详情,并指定tweet_fields=['referenced_tweets']来获取关联推文信息。最后遍历referenced_tweets列表,找到类型为replied_to的条目,它的id就是父推文ID。
import tweepy # 替换成你的Bearer Token BEARER_TOKEN = "你的Bearer Token" # 初始化V2客户端 client = tweepy.Client(bearer_token=BEARER_TOKEN) # 你的回复推文ID(字符串或数字类型都可以) reply_tweet_id = "1234567890123456789" # 获取推文详情,指定需要referenced_tweets字段 response = client.get_tweet( id=reply_tweet_id, tweet_fields=['referenced_tweets'] ) # 提取父推文ID if response.data and response.data.referenced_tweets: for ref_tweet in response.data.referenced_tweets: if ref_tweet.type == 'replied_to': parent_tweet_id = ref_tweet.id print(f"找到父推文ID: {parent_tweet_id}") break else: print("这条推文不是回复类型,没有父推文ID")
使用Tweepy V1.1版本(旧版兼容)
如果你的项目还在使用旧版API,可以通过in_reply_to_status_id字段直接获取父ID:
- 安装对应版本的Tweepy(如果需要):
pip install tweepy==3.10.0 # 适配V1.1的经典版本
- 代码示例:
需要使用API Key、API Secret、Access Token和Access Token Secret进行OAuth认证,然后调用get_status方法。
import tweepy # 替换成你的V1.1认证信息 API_KEY = "你的API Key" API_SECRET = "你的API Secret" ACCESS_TOKEN = "你的Access Token" ACCESS_TOKEN_SECRET = "你的Access Token Secret" # 初始化V1.1 API实例 auth = tweepy.OAuthHandler(API_KEY, API_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) # 回复推文ID reply_tweet_id = "1234567890123456789" try: # 获取推文状态,include_entities确保返回完整信息 tweet = api.get_status(reply_tweet_id, include_entities=True) parent_tweet_id = tweet.in_reply_to_status_id if parent_tweet_id: print(f"找到父推文ID: {parent_tweet_id}") else: print("这条推文不是回复类型,没有父推文ID") except tweepy.TweepError as e: print(f"获取推文时出错: {e}")
注意事项
- 确保你的Twitter开发者账号有对应的API权限:V2需要
tweet.read权限,V1.1需要读取类权限。 - 如果目标推文被删除、设为私有,或者你的账号没有访问权限,会返回错误,记得添加异常处理逻辑。
内容的提问来源于stack exchange,提问作者Gl1tch1e
相关产品推荐
相关产品推荐

