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

如何用Tweepy获取特定地理位置推文发布者的昵称或用户ID?

解决Tweepy获取地理推文发布者昵称/用户ID的问题

我来帮你搞定这个问题!你设置show_user="True"没生效,是因为这个参数在当前版本的Tweepy里已经不是获取用户信息的正确方式啦。实际上,通过api.search返回的每条推文对象,本身就自带一个user属性,里面包含了发布者的所有核心信息,包括你需要的昵称和用户ID。

问题原因

show_user是旧版Twitter API的参数,现在Tweepy对接的新版本API默认就会返回推文关联的用户对象,所以这个参数已经不需要设置了(就算设置了也不会起到你想要的效果)。另外你代码里把布尔值True写成了字符串"True",这也是一个小细节问题,但核心还是参数本身的适用性问题。

正确的实现代码

你只需要在遍历获取到的推文时,直接从推文的user属性里提取信息就行,修改后的代码示例如下:

import tweepy

# 先完成Tweepy认证步骤(请替换成你的密钥信息)
# auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
# auth.set_access_token(access_token, access_token_secret)
# api = tweepy.API(auth)

# 发起地理推文搜索,无需设置show_user参数
public_tweets = tweepy.Cursor(api.search, 
                             rpp=100, 
                             geocode="44.269493,63.341332,5km",
                             since="2018-05-01",
                             tweet_mode="extended").items()

# 遍历推文并提取发布者信息
for tweet in public_tweets:
    # 获取发布者昵称(screen-name)
    screen_name = tweet.user.screen_name
    # 获取用户ID(UserId)
    user_id = tweet.user.id
    # 获取完整推文内容(因为设置了tweet_mode="extended")
    full_tweet_content = tweet.full_text
    
    print(f"发布者昵称: @{screen_name}")
    print(f"用户ID: {user_id}")
    print(f"推文内容: {full_tweet_content}\n")

关键说明

  • tweet.user是一个完整的用户对象,除了screen_name和id,还包含用户头像、个人简介、关注数等其他信息,你可以根据需求自由提取。
  • 确保你使用的是较新版本的Tweepy(建议v4.x及以上),旧版本可能在API响应结构上存在差异。
  • 你的geocode参数格式是正确的,遵循纬度,经度,半径的规则,半径支持km(千米)或mi(英里)单位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:56:19