You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python获取任意Twitter用户的Home Timeline?技术求助

解决Tweepy只能获取自身账号Home Timeline的问题

嗨,我明白你现在的困扰——你想获取任意用户的Home Timeline,但当前代码只能拿到你开发者账号自己的。其实这是Twitter API的设计限制导致的,我来给你拆解清楚:

为什么只能拿到自己的Home Timeline?

Twitter的home_timeline API端点本身就是用来获取授权用户自己的首页时间线(也就是你登录后看到的那些推文),它无法直接获取其他用户的首页内容。这是出于隐私和数据权限的考虑,毕竟其他用户的首页包含他们关注的账号动态,属于他们的个人浏览数据,Twitter不会开放这样的接口让第三方随意获取。

你的需求对应的正确方案

如果你是想获取某个特定用户自己发布的推文(而不是他们首页的内容),那应该用user_timeline接口。这是完全合规且可行的,下面是修改后的代码示例:

import tweepy

# 你的开发者密钥
consumer_key = 'xxxxxxxxxxxxxxxxx'
consumer_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
access_token = 'xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxx'
access_token_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

# 初始化认证
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

# 创建API对象
api = tweepy.API(auth)

# 替换成你想要获取推文的目标用户的用户名(不带@)
target_username = "example_user"

try:
    # 获取目标用户的推文,count参数控制返回数量(最多200条/请求)
    tweets = api.user_timeline(screen_name=target_username, count=200, tweet_mode="extended")
    
    # 遍历打印推文内容
    for tweet in tweets:
        print(f"发布时间: {tweet.created_at}")
        print(f"推文内容: {tweet.full_text}\n")
except tweepy.TweepyException as e:
    print(f"出错了: {e}")

关于“获取其他用户首页内容”的补充说明

如果你的需求真的是获取其他用户登录后看到的首页时间线(包含他们关注的所有账号的动态),很遗憾Twitter官方API没有提供这样的接口。任何试图模拟用户登录来获取的方式都违反Twitter的开发者协议,会导致你的应用被封禁,所以不建议尝试。

你可以考虑替代方案:比如先获取目标用户的关注列表,再批量获取这些关注账号的推文,然后模拟构建类似他们首页的内容。不过这种方式和真实首页的排序(Twitter的算法推荐)会有差异,需要你自己处理排序逻辑。

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

火山引擎 最新活动