Tweepy 上手教程:用 Python 调用 Twitter API 的步骤与示例

发布时间:2026/11/5 1:42:46
Tweepy 上手教程:用 Python 调用 Twitter API 的步骤与示例

Tweepy 上手教程:用 Python 调用 Twitter API 的步骤与示例

【免费下载链接】tweepyTwitter for Python!项目地址: https://gitcode.com/gh_mirrors/tw/tweepy

想在 Python 项目里抓取推文内容或发一条推,自己用 requests 拼 OAuth 签名、处理限流响应头很容易写错,而且代码量远超业务逻辑本身。Tweepy 就是为 Twitter(X)API 做的 Python 客户端库:装好、填上密钥,就能直接调用与 v2 接口一一对应的方法。

项目定位与核心价值

Tweepy 封装了 Bearer Token 与 OAuth 1.0a 认证、请求签名和响应解析,每个 API 端点都对应一个 Python 方法(get_user、search_recent_tweets、create_tweet 等),返回值是可直接取字段的对象。相比手写 HTTP 请求,你不用关心签名细节和分页参数;库同时提供同步的 Client 与异步的 AsyncClient,调用方式基本一致。

📦 安装配置与最小示例

跑起来之前先准备:

  • Python 3.9 及以上(项目声明的最低版本)
  • Twitter/X 开发者账号,创建一个 App 并拿到 Bearer Token(只读操作够用)
  • 若要发推,还需申请用户级四元组凭据,并给 App 开通 Write 权限
pip install tweepy # 需要异步子包 tweepy.asynchronous 时改装: pip install tweepy[async]

最小可运行示例(只读,仅需 Bearer Token):

import tweepy client = tweepy.Client(bearer_token="YOUR_BEARER_TOKEN") # 应用级凭据 user = client.get_user(username="Twitter") print(user.data.name, user.data.username) # 显示名与 @用户名

能正常打印说明"安装 → 配置 → 调用"链路已通。各类凭据在开发者后台的具体位置,可对照官方示例的注释逐项核对。

🧭 高频功能实操示例

查询用户信息:get_user 配置与使用

适合拿昵称、简介、粉丝数这类资料。默认只返回 id、name、username,其余字段必须显式声明才会出现在响应里:

user = client.get_user(username="Twitter", user_fields=["public_metrics"]) # 声明附加字段 print(user.data.public_metrics["followers_count"]) # 粉丝数

按 ID 批量查可用 get_users(ids=[...]),返回的 data 是 User 对象列表。

搜索最近七天推文:search_recent_tweets 上手

search_recent_tweets 只覆盖最近 7 天的推文,默认返回 10 条,最多可提到 100 条:

resp = client.search_recent_tweets("tweepy", max_results=100) for t in resp.data: # data 为 Tweet 对象列表 print(t.id, t.text)

想看点赞、转发数,像上面一样传 tweet_fields=["public_metrics"] 即可。

发布第一条推文:create_tweet 配置步骤

写操作必须用用户级 OAuth 1.0a 凭据,且 App 需有 Read and Write 权限:

client = tweepy.Client( consumer_key=ck, consumer_secret=cs, access_token=at, access_token_secret=ats) # 用户级四元组 resp = client.create_tweet(text="Hello from Tweepy") print(resp.data["id"]) # 新推文的 ID

注意:修改 App 权限后要重新走用户授权、重新生成 access token,否则调用会失败。

🛠 常见坑与排错

  • 现象:任何接口都报 401 Unauthorized。原因:token 复制不完整,或 App 权限变更后未重新生成 access token。解决:回开发者后台重新复制完整凭据;权限有变动就重走授权流程。
  • 现象:响应里没有你要的字段(created_at、点赞数等)。原因:v2 接口默认只返回最小字段集。解决:显式传对象对应的 fields 参数,如 tweet_fields、user_fields,见上文两个示例。
  • 现象:报 429 TooManyRequests,请求被拒。原因:超出当前 API 层级的请求配额。解决:捕获异常读取 reset_time(限流重置时间戳),睡过该时间再重试:
try: resp = client.get_users_tweets(id=user_id, max_results=100) except tweepy.TooManyRequests as e: print(e.reset_time) # 限流重置的 Unix 时间戳

延伸方向与资料

  • tweepy/asynchronous/client.py:AsyncClient 源码,适合高并发抓取场景
  • docs/streaming.rst:流式客户端 StreamingClient 与规则配置
  • docs/changelog.md:版本更新记录,升级前先看接口变动

Tweepy 适合需要在 Python 中快速接入 Twitter 数据、发布功能或实时流监控的场景,从抓数分析到机器人开发都能覆盖。建议的下一步:先拿一个 Bearer Token 把上面 get_user 示例跑通,再换成你自己的关键词试试 search_recent_tweets;需要实时数据时,照 streaming 文档配上第一条规则即可。

【免费下载链接】tweepyTwitter for Python!项目地址: https://gitcode.com/gh_mirrors/tw/tweepy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考