# 怎么拿到一个推特账号发过的所有推文？

> 采集一个 X（推特）账号的全部帖子：先从新到旧翻时间线，更早的部分用 from: 加日期分段搜索。费用、代码和限制。

网页版：https://okdata.online/zh/answers/get-all-tweets-from-account/

**简短回答：**用 X 账号帖子列表从新到旧翻页（每页约 20 条，$0.006），更早的时间段用 X 帖子搜索加 from:用户名 和 since:/until: 日期补齐（每页 $0.006）。一个每天发 10 条的账号，一年约 183 页，大约 $1.098。

比如你想把竞品今年在 X 上发的东西全部拉下来，看看他们宣布了什么、哪些帖子反响好。两个接口就够了。[X 账号帖子列表](/zh/apis/x/users/posts/list/)按从新到旧一页页返回这个账号的帖子，翻过起始日期就停。更早的时间段，或者想确认没有漏掉，用 [X 帖子搜索](/zh/apis/x/posts/search/)加 `from:用户名` 和时间范围，一段一段往前补。

## 先估个量

先用 [X 账号信息](/zh/apis/x/users/get/)（$0.001）看一眼。返回的 `posts` 字段是 X 自己统计的发帖总数，里面包含回复和转发，所以你最后采到的条数一般对不上，但能看出要处理的是 400 条还是 4 万条。

| 账号情况 | 帖子数 | 页数 | 费用 |
|---|---|---|---|
| 每天 2 条，一年 | 约 730 | 37 | $0.222 |
| 每天 10 条，一年 | 约 3,650 | 183 | $1.098 |
| 同上，改用按月分段搜索 | 约 3,650 | 183 | $1.098 |

## 代码：翻时间线直到截止日期

```python
import os, requests

API = "https://api.okdata.online/v1"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
START = "2026-01-01"

def get(path, **params):
    body = requests.get(f"{API}/{path}", headers=H, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']}")
    return body

posts, cursor = [], None
while True:
    body = get("x/users/posts/list", username="openai", **({"cursor": cursor} if cursor else {}))
    batch = body["data"]["items"]
    posts += [p for p in batch if p["published_at"] >= START]
    if not body["page"]["has_more"] or (batch and batch[-1]["published_at"] < START):
        break
    cursor = body["page"]["next_cursor"]

print(len(posts), "条，起始日期", START)
```

走搜索这条路时，按月循环，`query=f"from:openai since:{a} until:{b}"`，配合 `sort=latest`。只想要账号自己发的帖子、不要它回复别人的，再加上 `-filter:replies`。

## 限制

- 时间线能往回翻多深由 X 决定。翻不到起始日期就停了的话，改用按月分段搜索。
- 受保护账号和已删除的帖子采不到。
- 每页算一次调用，失败的那页不扣钱。

## 官方渠道

X 官方 API 的用户时间线最多只返回最近 3,200 条。官方全量历史搜索配合 `from:` 可以回溯到 2006 年，按量付费账号可用，每条 0.005 美元。只采一个几千条帖子的账号，这个价格不算贵；如果你需要 X 官方对完整性的保证，就选它。要是每周都要跟十几个竞品账号，按页计费会便宜不少。每周跑一次的完整做法见[竞品监测方案](/zh/solutions/competitor-monitoring/)。

## 用到的接口

- [X 账号帖子列表](https://okdata.online/zh/apis/x/users/posts/list/) `x.users.posts.list`：$0.006/次 · 每页约 20 条帖子
- [X 帖子搜索](https://okdata.online/zh/apis/x/posts/search/) `x.posts.search`：$0.006/次 · 每页约 20 条帖子
- [X 账号信息](https://okdata.online/zh/apis/x/users/get/) `x.users.get`：$0.001/次

更新于 2026-11-12
