You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Tweepy或Python模块调用get-favorites-list接口获取用户点赞推文?

嘿,我来帮你搞定用Python获取用户点赞推文的事儿!Tweepy是最顺手的Twitter API Python库,不管你是想用和之前PHP调用的旧接口对应的版本,还是更推荐的新版API,都能轻松实现,下面一步步来:

准备工作
  • 首先得有Twitter开发者账号,创建一个应用后拿到对应的密钥:
    • 若用旧版v1.1 API:需要API Key、API Secret Key、Access Token、Access Token Secret
    • 若用新版v2 API:需要Bearer Token(更简洁,推荐优先用这个)
  • 安装Tweepy:在终端里跑 pip install tweepy 就行
方法一:对应你之前用的get-favorites-list接口(API v1.1)

这个方法和你之前PHP调用的接口完全对应,Tweepy里直接封装了api.favorites()方法来实现:

import tweepy

# 替换成你的真实密钥
API_KEY = '你的API Key'
API_SECRET = '你的API Secret Key'
ACCESS_TOKEN = '你的Access Token'
ACCESS_TOKEN_SECRET = '你的Access Token Secret'

# 完成认证
auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

# 创建API实例,开启自动处理速率限制
api = tweepy.API(auth, wait_on_rate_limit=True)

# 目标用户的用户名(不带@)
target_username = 'example_user'

# 用Cursor自动分页,获取所有点赞的推文(默认每次请求最多返回200条)
try:
    for favorite_tweet in tweepy.Cursor(api.favorites, screen_name=target_username, count=200).items():
        # 打印你需要的推文信息,这里示例输出ID、内容和创建时间
        print(f"推文ID: {favorite_tweet.id}")
        print(f"推文内容: {favorite_tweet.text}")
        print(f"创建时间: {favorite_tweet.created_at}")
        print("------------------------")
except tweepy.TweepyException as e:
    print(f"请求出错了: {e}")

小提示

  • wait_on_rate_limit=True会让Tweepy在触发API速率限制时自动等待,不用你手动处理休眠
  • 如果只想获取前N条,把.items()改成.items(N)就行,比如.items(50)只拿前50条
方法二:用Twitter API v2(推荐,v1.1后续可能被弃用)

新版API的设计更简洁灵活,Tweepy提供了Client类来调用,对应的接口是/2/users/{id}/liked_tweets:

import tweepy

# 替换成你的Bearer Token
BEARER_TOKEN = '你的Bearer Token'

# 创建v2客户端,开启自动处理速率限制
client = tweepy.Client(bearer_token=BEARER_TOKEN, wait_on_rate_limit=True)

# 先通过用户名获取用户ID(v2 API要求用用户ID而非用户名)
target_username = 'example_user'
user_response = client.get_user(username=target_username)
target_user_id = user_response.data.id

# 获取用户点赞的推文,支持自定义返回字段
try:
    # 第一页数据,max_results最多100条
    liked_tweets = client.get_liked_tweets(
        target_user_id,
        max_results=100,
        tweet_fields=['id', 'text', 'created_at']  # 指定要返回的推文字段
    )
    
    # 处理第一页内容
    for tweet in liked_tweets.data:
        print(f"推文ID: {tweet.id}")
        print(f"推文内容: {tweet.text}")
        print(f"创建时间: {tweet.created_at}")
        print("------------------------")
    
    # 处理分页,获取剩余的推文
    next_token = liked_tweets.meta.get('next_token')
    while next_token:
        next_page = client.get_liked_tweets(
            target_user_id,
            max_results=100,
            tweet_fields=['id', 'text', 'created_at'],
            pagination_token=next_token
        )
        for tweet in next_page.data:
            print(f"推文ID: {tweet.id}")
            print(f"推文内容: {tweet.text}")
            print(f"创建时间: {tweet.created_at}")
            print("------------------------")
        next_token = next_page.meta.get('next_token')
except tweepy.TweepyException as e:
    print(f"请求出错了: {e}")

小提示

  • 你可以通过tweet_fields、user_fields等参数自定义要获取的信息,比如想拿推文的作者信息,就加expansions=['author_id']和user_fields=['username', 'name']
  • 如果已经知道目标用户的ID,可以跳过获取用户ID的步骤,直接传入ID即可
注意事项
  • 权限问题:如果目标用户设置了隐私,你只能获取对方公开的点赞内容;如果是获取自己的点赞,只要权限配置正确就没问题
  • 速率限制:Twitter API有请求次数上限,Tweepy的wait_on_rate_limit=True会自动处理等待,避免被限流

内容的提问来源于stack exchange,提问作者teoman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:32:16