通过 Browser Use CLI 操控真实 Chrome 搜索 Twitter/X,抓取热门推文并汇总成结构化报告。如果 browser-use 不可用则降级到 fxtwitter API。
根据用户给的话题,生成 3-5 组搜索关键词:
AI Agent)AI Agent framework 2026)Claude Code、 Cursor)告诉用户关键词列表后开始执行。
系统 SOCKS/HTTP 代理会破坏 browser-use 的 CDP 连接,必须清除。在 session 开始时定义一次:
bash
bu() { ALL_PROXY= HTTP_PROXY= HTTPS_PROXY= http_proxy= https_proxy= all_proxy= browser-use "$@"; }
后续所有 browser-use 调用改用 bu。
bash
if ! which browser-use &>/dev/null; then
echo "INSTALLING browser-use..."
uv tool install browser-use && browser-use install
fi
# 验证
which browser-use &>/dev/null && echo "READY" || echo "INSTALL_FAILED"
注意: 安装方式必须是 uv tool install browser-use。 curl install.sh 只装 cookie 同步工具 profile-use,不是浏览器自动化 CLI。
bash
bu close 2>/dev/null; sleep 1
bu -b real open "https://x.com" 2>&1
如果报 CDP connection 错误,说明代理变量没清干净或 Chrome 未运行。 -b real 需要本机 Chrome 已启动且已登录 Twitter。
对每个关键词执行:
bash
# 导航到搜索页
bu open "https://x.com/search?q={URL编码的关键词}&src=typed_query&f=top"
sleep 3
# 获取热门标签内容
bu state 2>&1
解析 state 输出的方法:
state 返回 accessibility tree,推文结构如下:
<article role=article> — 每条推文的容器<a role=link> 内含作者名 — 如 阿绎 AYi@handle — 紧跟作者名后面<a aria-label=X月X日> — 发布时间<span> 连续多个 — 推文正文(被拆成多段)<div aria-label="X 回复、X 次转帖、X 喜欢、X 书签、X 次观看"> — 互动数据汇总提取时按 article 分块,从每块中收集上述字段。
滚动加载更多(可选):
bash
bu scroll down && sleep 2 && bu state 2>&1
切换到"最新"标签:
从 state 中找到 <a role=tab>最新</a> 的索引号,然后:
bash
bu click {索引号} && sleep 3 && bu state 2>&1
直接导航到新 URL(不要用搜索框填充,容易出错):
bash
sleep 8 # Twitter 搜索限速间隔,不能低于 8 秒
bu open "https://x.com/search?q={下一个关键词}&src=typed_query&f=top"
sleep 3
bu state 2>&1
Twitter 搜索限速非常严格。 每次搜索之间必须间隔 8-10 秒,否则搜索结果会一直转圈加载不出来。
症状识别:页面能显示搜索框和标签栏,但内容区域持续转圈(主页 /home 正常加载)。
恢复策略:
bu open "https://x.com/home" 验证网络正常hello)验证搜索功能恢复如果 browser-use 不可用、未安装、或被 Twitter 限速:
bash
# 1. 用 WebSearch 搜索(在 skill 中调用 WebSearch 工具)
# query: "{关键词} site:x.com" 或 "{关键词} Twitter"
# 2. 从搜索结果提取推文 URL,用 fxtwitter API 获取详情
# URL 格式: https://x.com/{username}/status/{tweet_id}
curl -s "https://api.fxtwitter.com/{username}/status/{tweet_id}"
# 3. fxtwitter 不可用时尝试 vxtwitter
curl -s "https://api.vxtwitter.com/{username}/status/{tweet_id}"
搜索结束后关闭 browser-use 会话:
bash
bu close 2>/dev/null
将所有搜索结果合并:
markdown
# Twitter {话题} 热门内容汇总({日期})
> 搜索关键词:{关键词1}、{关键词2}、...
> 数据来源:Twitter/X 热门 + 最新
> 采集方式:Browser Use CLI / fxtwitter API
> 采集时间:{时间}
---
## 一、{主题分类1}
### 1. {推文标题/摘要}
**作者**: {display_name} (@{handle}) | **时间**: {time} | **互动**: {likes} likes, {retweets} RT, {views} views
> {推文正文}
**要点**: {一句话总结}
---
## 关键趋势总结
- **趋势1**: {描述}
- ...
## 值得关注的项目/工具
| 项目名 | 类型 | 一句话描述 | 推荐来源 |
|--------|------|-----------|---------|
| ... | ... | ... | @handle |
症状原因解决socksio package not installed系统 SOCKS 代理干扰 CDP用 bu() wrapper 清除 CLI 进程的代理(Chrome 自身走系统代理,不受影响)CDP connection: invalid HTTP response旧 session 残留bu close 后重试Browser startup timeoutChromium 未安装browser-use installstate 只有空 div无登录态(Chromium 模式)用 -b real 复用真实 Chrome 登录态搜索页持续转圈,主页正常Twitter 搜索限速(最常见)等 2-3 分钟恢复,加大间隔到 10 秒curl install.sh 没装到 browser-use那个脚本只装 profile-use用 uv tool install browser-use``-b real 模式需要配代理吗?不需要Chrome 自己走系统代理, bu() 只清 CLI 进程的代理