如何用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




