Linux上的Chrome - 查询浏览器以查看哪些标签页已打开?

22

我正在运行Ubuntu Linux上的开源Chrome版本- Chromium。我能否编写一个程序来查看我打开了哪些选项卡?我想编写一个程序来监视我花费时间的情况。是否有一个命令行程序,可以调用chromium-browser命令或一些dbus咒语,以告诉我我打开了哪些选项卡和每个选项卡的URL是什么?

5个回答

11

7
我知道没有人询问Mac相关问题,但是当我在搜索Mac答案时链接到了这个问题,所以我会在这里添加信息。strings ~/'Library/Application Support/Google/Chrome/Default/Current Session' | 'grep' -E '^https?://' - AlexMorley-Finch
它会报错,显示“没有这个文件或目录”。你能帮忙吗? - Rahul Raval
它有点能用。返回的URL也包括了当前未打开的,但我想这是基于“strings”所做的操作而预料之中的。 - stantonk
有没有办法获取我正在关注哪个选项卡? - roachsinai
也许最后一个 https 是这样的,谢谢。对于 Chrome,请使用 ~/.config/google-chrome/Default/'Current Session' - roachsinai
有没有人有 Windows 的解决方案? - Alexander

8
实际上,有一种命令行选项可以打开运行中的Chrome(Chromium)进程--remote-shell-port。通过这个“调试后门”,您可以获取打开标签页的列表。
请参考chromedevtools以获取更多灵感。
更新:
自版本>17.0.950.*以来,Chrome DevTools已被弃用并不再受支持。如果新的调试框架提供了类似的方法来完成任务,请参阅WebKit-Protocol手册。

能否从Google Chrome扩展程序中访问打开标签页的列表? - Anderson Green
2
这个问题解释了如何从Chrome扩展中找到打开标签的列表:https://dev59.com/w2ct5IYBdhLWcg3wqfL9 - Anderson Green
这个答案适用于所有平台,还是只适用于Linux? - Anderson Green

5

以下是一种更通用的解决方案(适用于其他应用程序),通过使用xdotool查询当前聚焦的X窗口来实现。

while true; do 
  xdotool getwindowfocus getwindowname; 
  sleep 10; 
done

例如,这将输出以下内容:
Tilix: Defaultpeter-ThinkPad-T5801: peter@peter-ThinkPad-T580: ~
Chrome on Linux - query the browser to see what tabs are open? - Stack Overflow - Google Chrome
Local KVM
untitled  Atom
untitled  Atom
Open File
iostat_xtmz_3.out  ~/Work/KappAhl/Test1  Atom
Tilix: Defaultpeter-ThinkPad-T5801: peter@peter-ThinkPad-T580: ~*

1
但是那花了你80秒钟。 - Dan Jacobson
xdotool似乎只知道当前打开的标签页,而不知道其他所有标签页。 - undefined

2
这是Unix命令的扩展(我声望不够,无法评论)。我只是想得到制表符的计数。这仍然不完美,因为我认为文件中包含了所有选项卡的完整历史记录。我猜它们是有序的,但分离它们的方法并不明显。

strings ~/Library/Application\ Support/Google/Chrome/Default/Sessions/Tabs_* | sed -nE 's/^([^:]+):\/\/(.*)\/$/\2/p' | grep -v "newtab" | grep -v "new-tab-page" | sort | uniq | wc -l

这是在Mac上进行的,因此您的路径和sed选项可能会有所不同。

基本思路是去掉尾随斜杠(许多重定向只添加一个斜杠)和新标签页,以便我们可以获得准确的计数。对于我的当前选项卡文件,打开的选项卡从181个降至35个。现在看起来实际上是低估了,但它更接近了。


2

我已经编写了一个工具,用于从Chrome会话文件中提取数据,以达到精确的目的。https://github.com/lemnos/chrome-session-dump。像这样运行它 chrome-session-dump 将生成一个选项卡列表(按顺序),随后可以传递给Firefox。例如 chrome-session-dump|xargs firefox。您还可以通过-active获取当前打开的选项卡,以供外部脚本处理。


嗨,我遇到了“panic: Unable to find session file.”的错误,你能帮我吗? - Miloš Milutinov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接