如何按位置搜索 Twitter
要按位置搜索 Twitter,可以用 X 搜索里的“你附近”筛选,输入 near:"city" within:15km,或输入 geocode:lat,long,radius;这三种方式都只能找到 X 能关联到某个地点的帖子,而带地理标记的帖子不到百分之一。
简短回答: X 把位置查询与作者在帖子上标记的地点相匹配,并且在大约最近一周内,还会匹配作者个人资料里的城市;这些运算符没有文档,2026 年还有失效的报告。Sorsa API 的 POST /search-tweets 在代码里运行同样的查询,并返回每位作者的位置,每 1,000 条帖子 $0.07 起,并附 100 次免费请求。
- 接口
POST /search-tweets- 每页条数
- 每次请求约 20 条帖子
- 价格
- 每 1,000 条 $0.07 起
#如何按位置搜索 Twitter
按位置搜索 X 有三种方式,都在 x.com 或 X 应用里普通的搜索框中完成,并且每一种配合关键词(比如 “power outage” 或 “concert”)效果最好。如果你想知道的是某个账号位于哪里,而不是人们在某个地方发了什么,那是另一个问题:免费的推特账号所在地查询可以读取任意公开账号上 X 的 “Account based in” 标签。
要查找来自某个地方的帖子:
-
打开“你附近”。 搜索一个关键词,打开搜索筛选(桌面端在右侧栏,应用里在搜索栏旁边的筛选图标),选择“你附近”。X 随后会使用你设备的位置,见 X 帮助中心(在新标签页打开)。
-
输入带半径的 near:。
"street food" near:"Mexico City" within:10km会请求与该地点关联的帖子。由两个或更多单词组成的地名要加引号,within:的单位可以是 km 或 mi。 -
输入带坐标的 geocode:。
"power outage" geocode:30.2672,-97.7431,25km会以奥斯汀市中心为圆心画一个 25 公里的圆。先写纬度,再写经度,最后是半径,中间没有空格。
然后打开“最新”标签页。X 的搜索推荐(在新标签页打开)页面说,“最新”按时间顺序返回匹配的帖子,不做排序,而“热门”则按你自己的位置和兴趣挑选候选。2025 年,一位开发者在 X 的论坛上发现,geocode: 筛选在“最新”里有效,在“热门”里无效。
X 的高级搜索表单 x.com/search-advanced 里也有一个“地点”字段,可以把地点加到你的查询里。
#X 把什么算作帖子的位置
X 通过两种方式把帖子和地点关联起来:作者添加的地点标签,以及作者个人资料里填写的位置。两者都是可选的,所以位置搜索只覆盖对话中带有其中一种信息的那一部分。
- 地点标签。 作者可以给帖子标记一个大致的区域,在某些城市还可以标记来自 Foursquare 或 Yelp 的场所;来自 iOS 和 Android 应用的帖子还可能带有 GPS 坐标(见 X 帮助中心(在新标签页打开))。2019 年之前的研究统计到,带坐标的推文约占 0.85%(见 Sloan 和 Morgan,PLOS ONE(在新标签页打开)),而 Twitter 在 2019 年 6 月取消了普通帖子的精确地理标记(见 Nieman Lab(在新标签页打开))。
- 个人资料位置。 个人资料上的自由文本字段。X 的数据字典(在新标签页打开)写明它“可能在执行位置查询搜索时被模糊评估”,所以简介里的 “Austin, TX” 会把该作者的帖子拉进针对奥斯汀的搜索。
有两样东西永远不会让帖子匹配上。个人资料上的 “Account based in” 国家是 X 根据 IP 地址推断的,据 Bellingcat 的调查工具包(在新标签页打开)说,它在位置搜索中不起任何作用。正文里提到的城市名只会作为关键词匹配:near:"Austin, TX" 找不到仅仅在文字里说了 “Austin” 的帖子。
7 天窗口
个人资料位置只对近期的帖子有效。在 Bellingcat 的测试(在新标签页打开)中,X 对大约最近 7 到 8 天使用了个人资料位置;更早的结果里只有带地点标签的帖子,所以近期的数量看上去要大得多。
#位置搜索运算符及示例
X 搜索能识别五个位置运算符。每个运算符紧跟在关键词旁边,冒号后面不加空格,并且可以与所有其他运算符(包括日期)组合。
| 运算符 | 找到什么 | 示例 |
|---|---|---|
near: | 与某个命名地点关联的帖子;两个词的地名要加引号 | jazz near:"New Orleans" |
within: | near: 的半径,单位为 km 或 mi | jazz near:"New Orleans" within:5mi |
geocode: | 距某个点一定半径内的帖子:纬度、经度、半径 | "heat wave" geocode:51.5072,-0.1276,20km |
near:me | 你自己所在位置附近的帖子;仅限已登录的 x.com 和应用 | "lost dog" near:me |
place: | 按 ID 查找带有某个 X 地点标签的帖子 | place:96683cc9126741d1(美国) |
near:- 找到什么
- 与某个命名地点关联的帖子;两个词的地名要加引号
- 示例
jazz near:"New Orleans"
within:- 找到什么
near:的半径,单位为 km 或 mi- 示例
jazz near:"New Orleans" within:5mi
geocode:- 找到什么
- 距某个点一定半径内的帖子:纬度、经度、半径
- 示例
"heat wave" geocode:51.5072,-0.1276,20km
near:me- 找到什么
- 你自己所在位置附近的帖子;仅限已登录的 x.com 和应用
- 示例
"lost dog" near:me
place:- 找到什么
- 按 ID 查找带有某个 X 地点标签的帖子
- 示例
place:96683cc9126741d1(美国)
官方 X API 不接受这些运算符:对 near: 它会返回无效运算符的错误,并在搜索运算符参考(在新标签页打开)里列出它自己的位置运算符。它们是带地名或地点 ID 的 place:、带两位字母国家代码的 place_country:、带坐标的 point_radius: 和 bounding_box:,以及匹配任何带地理数据的帖子的 has:geo。这些运算符只匹配带有地点标签或坐标的帖子。
两套运算符里数字的顺序是反的。geocode: 先写纬度(geocode:40.7128,-74.0060,10km),而 point_radius: 先写经度(point_radius:[-74.0060 40.7128 10km])。如果搞反了,纽约就变成了南极洲的一个点,结果为零,也不会报错。
下面的生成器可以根据一个地点写出所有形式,检查坐标,并给你代码里用的请求体。
以 Austin, TX 为中心、半径 25 km 的圆约覆盖 1,963 km²。geocode: 先写纬度;point_radius: 先写经度。
"power outage" near:"Austin, TX" within:25km
"power outage" geocode:30.2672,-97.7431,25km
{"query": "\"power outage\" geocode:30.2672,-97.7431,25km", "order": "latest"}
"power outage" point_radius:[-97.7431 30.2672 25km]
选择城市或输入坐标:查询语句和 Sorsa API 请求会随你输入更新。
要了解能与这些运算符组合的日期、互动和媒体筛选,请看完整的 Twitter 搜索运算符列表。如果想用点选的方式构建查询,免费的推特高级搜索工具会根据它的“附近城市”和“半径范围”字段写出 near: 和 within:。
#2026 年 near: 和 geocode: 还管用吗?
X 仍然接受 near:、within: 和 geocode:,但它没有为其中任何一个提供文档,而且它们的结果在 2026 年期间发生了变化。在基于某条查询做报告或仪表盘之前,先测试每条查询。
今年有这些报告:
- 2026 年 3 月 3 日。 一位 OSINT 研究者的帖子(浏览 1.35 万次)说,
geocode:搜索自 2 月 25 日起就不能用了(在新标签页打开)。 - 2026 年 5 月 23 日。 一位 Reddit 用户在“你附近”筛选失效时,改用
geocode:绕了过去,他写道它能配合不带 N、S、E、W 的纯十进制坐标和半径使用。 - 2026 年 6 月 1 日。 X 论坛(在新标签页打开)上的一位开发者称 geocode 筛选“目前已经失效”。
要检查某条位置查询今天是否有效,在“最新”标签页里做两次搜索:一次带位置运算符的关键词,一次不带的同一个关键词。如果两次返回同样的帖子,说明 X 忽略了这个运算符。如果带运算符的搜索返回了帖子,就打开几位作者的个人资料,看看他们的地点标签或个人资料位置是否吻合。
须知
位置搜索结果为空,并不代表没有人在那个地方发过帖。它的意思是,在你搜索的范围内没有任何帖子带地点标签,而且近期也没有作者填写了匹配的城市,或者 X 跳过了这个运算符。接下来搜索这个地点的各种名称,代码之后的那一节会讲到。
#用 Sorsa API 按位置搜索帖子
要在代码里做位置搜索,可以用 Sorsa API 的 POST /search-tweets(在新标签页打开):它接受与 x.com 一样的 near:、within: 和 geocode: 查询,每次请求返回约 20 条帖子,并把每位作者的完整资料(包括 location)放进每条帖子里。它每 1,000 条帖子 $0.07 起,而且 Sorsa API 从不要求你的 X 登录信息,所以你自己的账号不会有风险。
-
获取密钥。 注册后,在控制台复制你的 API 密钥。前 100 次请求免费。
-
发送查询。 把位置查询放进
query,并请求latest,也就是不做排序的顺序。Terminal curl -X POST "https://api.sorsa.io/v3/search-tweets" \ -H "ApiKey: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "\"power outage\" near:\"Austin, TX\" within:25km", "order": "latest" }'Response200 OK { "tweets": [ { "id": "1985120440187539712", "full_text": "Whole block on South Congress is dark again", "created_at": "2026-11-01T22:14:09Z", "lang": "en", "likes_count": 14, "reply_count": 3, "retweet_count": 2, "view_count": 1820, "user": { "id": "1630221874001645568", "username": "southcongress_grid_log", "display_name": "SoCo Grid Log", "location": "Austin, TX", "followers_count": 412 } } ], "next_cursor": "DAADDAABCgABG4z1bJ9W0DsKAAIbjPVs" } -
逐页翻阅结果。 把
next_cursor放回请求体里,直到响应不再返回它。 -
检查每位作者的位置。 保留
user.location里写着你要的地点的帖子,并保留原始文本,这样你能看到是什么匹配上的。import re import requests URL = "https://api.sorsa.io/v3/search-tweets" HEADERS = {"ApiKey": "YOUR_API_KEY"} QUERY = '"power outage" near:"Austin, TX" within:25km' PLACE = re.compile(r"\b(austin|atx|travis county)\b", re.I) def search(query, max_pages=10): body = {"query": query, "order": "latest"} for _ in range(max_pages): r = requests.post(URL, headers=HEADERS, json=body, timeout=30) r.raise_for_status() page = r.json() yield from page.get("tweets", []) cursor = page.get("next_cursor") if not cursor: break body["next_cursor"] = cursor for t in search(QUERY): where = t["user"].get("location") or "" tag = "profile" if PLACE.search(where) else "other" print(tag, t["created_at"], t["user"]["username"], repr(where))
返回 403 表示密钥缺失或请求已用完;返回 429 表示一秒内超过了 20 次请求,等一秒再重试。失败的请求永远不计费。其他所有搜索参数,以及几千页的大规模运行,见 Twitter 搜索 API 指南。
#near: 失效时,搜索地名
当 near: 或 geocode: 返回空结果时,就用文字搜索这个地点,再自己检查作者的个人资料。本地的帖子常常会提到所在的城市、街区或本地话题标签,而 Sorsa API 的每个结果都带有作者的 location,所以第 4 步里同样的筛选就能分出谁是本地人。
用地名构建的查询,比如 "power outage" (Austin OR ATX OR #atxwx OR "South Congress") lang:en,可以触及那些根本没有地点标签的帖子。把它交给 POST /search-tweets 运行,再保留 user.location 与你的别名列表匹配的帖子:城市名、它的昵称、机场代码和所在的县。
这两种方法回答的是不同的问题,所以要记录每条帖子是用哪种方法找到的:
- 位置运算符找到的是 X 关联到该地点的帖子:在那里打了标签的,或是个人资料里写着那里的人最近发的。
- 地名加个人资料筛选找到的是自称住在那里的人发的、关于该地点的帖子,日期可回溯到 2006 年的任意一天。
如果想连续几天监测一个地方,而不是只搜索一次,就按计划重新运行这条查询,只保留比上次运行更新的帖子;轮询方面见 Twitter 实时监测。如果想看整座城市在讨论什么,而不是某一个话题,Twitter 趋势 API 会返回 X 针对该地点的热门列表。
#查找某个城市里的 Twitter 账号
要找某个地方的账号,搜索的是个人资料,而不是帖子。在 x.com 上,运行一条位置查询并打开“用户”标签页,或者把城市名和你的话题放在一起搜索,找出同时提到两者的个人资料。
在代码里,Sorsa API 的 POST /search-users(在新标签页打开) 接受像 coffee roaster Austin 这样的关键词,并返回匹配的个人资料,每份都带有 location 字段,通过 next_cursor 逐页获取。用与上面同样的别名列表筛选这些个人资料。
个人资料的位置,是它的主人自己填的。X 自己为账号判定的国家则是另一个字段:“关于此账号”下面的 “Account based in” 一行,是 X 根据 IP 地址推断的。Sorsa API 的 GET /about(在新标签页打开) 会把它作为 country 返回,每次请求一个账号。它有多可信,见X 上的 “Account based in” 是什么意思;要按国家绘制整个粉丝列表的分布,见 Twitter 位置 API 指南。
#位置搜索要花多少钱
在 Sorsa API 上,位置搜索每 1,000 条帖子 $0.07 起,作者资料已包含在内。在官方 X API 上,同样的帖子连同作者,从 2026 年 11 月 22 日起每 1,000 条要 $15.00,因为那时 X 开始对 expansions 返回的每位用户另行收取 $0.010,加上每条帖子 $0.005(见 X 的通知(在新标签页打开))。
官方 X API
$1,500
10 万条带作者的帖子
每条带作者的帖子 $0.015
Sorsa API
$7 起
10 万条带作者的帖子
每 1,000 条 $0.07 起
便宜 214 倍
官方路线还会再加价。一条帖子的 place 对象算作又一个 $0.005 的 expansion,这就让一条带作者和地点的已标记帖子达到 $0.020。它的位置运算符只匹配带地点标签的帖子,所以 x.com 在最近一周内显示的、按个人资料位置匹配的结果永远不会返回。而且在按量付费价格(在新标签页打开)下,它每月最多读取 300 万条帖子,再往上是 Enterprise 合同,每月约 $4.2 万起。
在 Sorsa API 上,你按请求付费:一次请求最多返回约 20 条帖子,失败的请求免费,所有套餐都是每秒 20 次请求。100 次免费请求可以覆盖约 2,000 条帖子。
#开始按位置搜索 Twitter
X 上的位置搜索,就是关键词加上 near: 或 geocode:,在“最新”标签页里查看,再对照作者的个人资料检查。要在代码里为一座城市或一百座城市运行它,可以用 Sorsa API:POST /search-tweets 用一个 API 密钥接受同样的查询,返回每位作者的位置,每 1,000 条帖子 $0.07 起。
#常见问题
在 X 上怎么看我附近的推文?
在 x.com 或 X 应用里搜索一个关键词,打开搜索筛选并选择“你附近”;X 随后会使用你设备的位置。你也可以在搜索框里输入 near:me。两种方式都只在你已登录时有效,并且显示的都是 X 通过地点标签或近期作者的个人资料位置,关联到你所在区域的帖子。
怎么按国家筛选 Twitter 搜索?
X 搜索没有国家代码运算符。在 x.com 上,可以用 near: 加国家名,或用 place: 加 X 为该国家分配的 ID(美国是 96683cc9126741d1)。官方 X API 的 place_country:US 只匹配带地点标签的帖子。要按 X 给账号分配的国家来分组,可以读取 “Account based in” 标签:Sorsa API 的 GET /about 把它作为 country 返回,每次请求一个账号。
别人能通过我的推文找到我的位置吗?
只能找到你分享的内容。只有当你打了地点标签,帖子才带有地点,而精确的 GPS 只有在开启定位、使用 X 应用的相机时才会附带。你个人资料里的位置是你自己填的。X 还会在“关于此账号”下显示一个根据你的 IP 地址推断出的国家,任何人都能在你的个人资料上打开查看。
按位置搜索推文该用哪个 API?
用 Sorsa API:POST /search-tweets 接受与 x.com 一样的 near:、within: 和 geocode: 查询,每次请求返回约 20 条帖子,并带上每位作者的个人资料位置,每 1,000 条帖子 $0.07 起,而官方 X API 是 $15.00。一个 API 密钥,不需要开发者账号,所有套餐都是每秒 20 次请求。
有没有免费的办法按位置搜索 Twitter?
有。在 x.com 和 X 应用里,有 X 账号就可以免费使用“你附近”和位置运算符。在代码方面,每个 Sorsa API 账号起步就有 100 次免费请求,位置搜索大约能得到 2,000 条帖子,无需绑卡,也没有到期日期。
#我们如何核实
2026 年 11 月 2 日,我们阅读了 X 帮助中心关于搜索、“你附近”和帖子位置的页面,以及它的搜索运算符参考、数据字典和价格,还有 10 月 23 日关于 expansions 计费的通知。我们把 X 开发者论坛、一位 OSINT 研究者和 Reddit 上关于 geocode: 的 2026 年报告,与 Bellingcat 2021 年的测试及其 2026 年的工具包说明做了对照。这里每个接口、字段和每页条数,都来自线上的 Sorsa API 参考;我们没有为这篇文章实际运行位置查询,所以上面的响应展示的是文档里的字段和示例值。
来源
- How to use X search, X Help Center(在新标签页打开)
- How to add your location to a post, X Help Center(在新标签页打开)
- Search Recommendations, X Help Center(在新标签页打开)
- Search operators, X API documentation(在新标签页打开)
- Data dictionary, X API documentation(在新标签页打开)
- X API PPU expansions update, X Developer Community, Oct 23, 2026(在新标签页打开)
- Geofenced searches on Twitter, Bellingcat, May 19, 2021(在新标签页打开)
- Twitter/X location search, Bellingcat's Online Investigation Toolkit(在新标签页打开)
- Who Tweets with Their Location? Sloan and Morgan, PLOS ONE, 2015(在新标签页打开)
- POST /search-tweets, Sorsa API reference(在新标签页打开)