怎么在某一个账号内部搜推文(不用翻他的时间线)

11 min readSocialAPI 工程团队

怎么在某一个账号内部搜推文(不用翻他的时间线)

你记得某人发过关于某件事的帖子。你想找到那一条。

通常的做法是打开他的资料页往下翻,这对近期帖子有效,对稍老一点的完全失效。★有一个一行的替代方案,而大多数人从没学过它★ —— 它把一个下拉问题变成了一个查询。

from:用户名 关键词

这就是全部技巧。它只搜索那一个账号的帖子★,而且在 App、网页和接口里行为完全一致


这里用得上的运算符

运算符 作用
from:用户名 ★只看那个账号的帖子★
to:用户名 发给他的回复
@用户名 ★任何提到他的帖子★
from:用户名 since:2024-01-01 他某日之后的帖子
from:用户名 filter:media 只看他带媒体的帖子
from:用户名 min_faves:100 ★只看那些真的打中人的★

组合起来才是它真正好用的地方。from:someone climate min_faves:500 since:2024-01-01 是一个再怎么下拉也没法在合理时间内回答的问题。

同样的查询串在接口里也能用 —— 运算符不是界面功能


用代码

import requests

BASE = "https://api.socialapi.tech"
KEY  = "your_api_key"
HDRS = {"X-API-Key": KEY}

def search_account(username, terms, limit=50, product="Latest"):
    """在一个账号的帖子内部搜索。"""
    r = requests.get(f"{BASE}/v1/search/advanced",
                     params={"query": f"from:{username} {terms}",
                             "limit": limit, "product": product},
                     headers=HDRS, timeout=60)
    r.raise_for_status()
    return r.json()["data"]

for p in search_account("someaccount", "supply chain min_faves:50"):
    print(f"{p['created_at'][:10]}  {p.get('like_count',0):>6}  {p['text'][:70]}")

注意 productLatest 按时间返回;Top 按热门度返回 —— 而★它们返回的是确实不同的结果集,不只是不同的排序★。要"找我记得的那条",用 Latest。要"他在这个话题上最好的帖子",用 Top


★搜索 vs 翻页 —— 它们回答的是不同问题★

这个区分决定了你需要哪个工具:

你想要
你记得的某一条帖子 ★搜索★
他关于 X 说过的一切 ★搜索★
他的完整历史 ★翻页★
他的第一条帖子 ★翻页★
互动量在某条线以上的帖子 ★搜索★

搜索是回忆。翻页是枚举。

两者各是一个调用 —— 运算符语法是直接透传的。

⚠️ 而且这个取舍有一条锋利的边:搜索没法可靠地伸进遥远的过去★,而翻页可以。如果一个 from: 搜索对一条你确信存在的老帖子返回了空,那多半是这条帖子在搜索的地平线以下,而不是它没了 —— 改用翻页去找


它做不到什么

from: 搜不了受保护账号。 ★如果对方是受保护的,什么都不行★ —— 这个不行,翻页不行,任何工具都不行。

它找不到已删除的帖子。 ★搜索索引的是存在的东西★ —— 什么能在删除后幸存

它不能按邮箱或手机号搜。 ★人们一直在搜"用邮箱搜推特",而那不是任何人拥有的功能★ —— 为什么那个查询不存在

它搜不了图片里的内容。 ★截图里的文字对搜索是隐形的★ —— 图片搜索匹配什么


大家会问的问题

怎么搜某个用户的推文?from:用户名 加你的关键词。★ 这就是全部语法。

怎么搜某人的推文? 同一个运算符。 ★对任何公开账号都有效,不只是你自己的。★

怎么在一个推特账号里搜关键词? from:用户名 关键词 —— ★只搜那个账号的帖子★。

怎么按用户搜推文? from: 看他发的,to: 看发给他的回复,@ 看提及。 ★三个不同的问题。★

怎么在一个账号内部搜索? 在查询前面加 from:用户名 ★不需要任何界面设置。★

能搜别人的推文吗? ★能,对公开账号。★ 他们的帖子是公开数据。

怎么搜一个人的老推文? 先搜,返回空了再翻页 —— ★搜索偏向近期★。

怎么按人和日期搜推文? from:用户名 since:YYYY-MM-DD until:YYYY-MM-DD —— 日期怎么运作

不登录能搜推文吗? 退出登录的搜索限制很重 —— 退出登录能做什么

怎么找到某人关注的所有人? ★那是另一种操作★ —— 去读他的关注列表,不要用搜索。

能按邮箱搜吗? ★不能 —— 那个查询对任何人都不存在★ —— 为什么

怎么搜某人的回复? from:用户名 filter:replies,或者直接读他的回复视图。

怎么排除回复? from:用户名 -filter:replies —— ★减号前缀能否定任何过滤器★。

怎么找他在某个话题上最热门的帖子? from:用户名 话题 min_faves:500,配合 Top 排序。

min_faves 是做什么的? ★过滤到点赞数超过某个门槛的帖子★ —— 跳过噪音最快的办法

能搜他的媒体帖子吗? from:用户名 filter:media,不过★媒体视图是一个独立索引★ —— 为什么

from: 能和引号短语一起用吗? —— ★from:用户名 "确切原话" 是最精确的形式★。

我的 from: 搜索为什么返回空? 要么措辞不一样,要么★那条帖子在搜索的地平线以下★。 试试翻页。

from: 区分大小写吗? 不区分,而且带不带 @ 都行。

能一次搜多个账号吗? 能 —— (from:a OR from:b) ★注意括号★。

能把 from: 和话题标签组合吗? —— 所有运算符都可以组合。

from: 和 to: 有什么区别?from: 是他发的;to: 是发给他的。★

to: 和 @ 有什么区别? to: 是回复;@ 是任何提及 —— 这个区分

搜索一个账号会通知他吗?不会。搜索从不被归因 —— 别人能看到什么

from: 搜索能回溯多远? ★不太远★ —— 这是搜索的限制,不是这个运算符的。

要完整历史该搜索还是翻页?翻页。搜索是回忆;翻页是枚举。

能搜受保护账号吗? 不能。 ★没有任何东西能到达受保护账号。★

能拿多少条结果? 分页 —— 和任何搜索一样跟着游标翻。

Top 还是 Latest 有区别吗? ★区别很大 —— 它们返回的是不同的集合★,不只是不同的排序。

能对很多账号自动做这件事吗? 能 —— 每个账号一个查询。 ★按查询数做预算,不是按账号规模。★

最有用的一个组合是什么?from:用户名 "确切原话"★ —— 找到你记得的那条帖子最快的路径。


简短版

from:用户名 关键词 在一个账号的帖子内部搜索,这个技巧把"一直翻到找到为止"变成了一个查询。★

把它组合起来 —— 日期、媒体过滤、互动门槛 —— ★你就能问出那些下拉根本回答不了的问题★。

但要知道自己手里是哪个工具:搜索是回忆,翻页是枚举。★ 一个 from: 搜索对老帖子返回空,通常意味着它在搜索的地平线以下,而不是它没了 —— 改用翻页

我们的 API 接受同样的运算符语法,而且 LatestTop两个独立的结果集而不是两种排序。只读、固定按次价格。

它到达不了什么: 受保护账号、已删除的帖子、图片里的文字,或者某个邮箱背后的账号。★四者都是边界,不是缺口。

延伸阅读:完整的运算符集 · 什么时候改用翻页 · 日期过滤的真实行为 · 回复与提及的区别