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),仅供参考