11
22
2015
26

获取 Google Chrome 中打开的标签页的 URL

本文来自依云's Blog,转载请注明。

Google Chrome 把这些信息保存在配置目录下的Current Session文件里了,比如我的位于~/.config/google-chrome/Default/Current Session。这个文件是二进制的,使用 Chromagnon 里的脚本可以解析成文本,然后拿 Vim 编辑编辑就可以得到一行一个链接的文本文件了。这样就可以很容易地把它们在火狐里打开了,比如:

cat links | xargs firefox

这样就把链接们从 Google Chrome 里迁移到了一个单独的火狐窗口中。

我做这个的原因是,最近我的火狐运行微信时会持续占用一个 CPU 核。改用 Google Chrome 来运行微信之后风扇才能安静下来。然而 Google Chrome 的字体渲染我并不喜欢,更重要的是它会不时地崩溃一下。所以我辛辛苦苦「转发」了N个链接到「文件传输助手」,并艰难地(因为这个过程非常卡)将它们一一点开之后,希望能把这些页面转到火狐中来阅读。

暂时手工操作了。以后用得多的话再写自动化脚本。

Category: 网络 | Tags: 微信 Google Chrome 火狐 | Read Count: 6490
Avatar_small
.. 说:
Nov 22, 2015 06:27:30 PM

~/.config/google-chrome/Default/Current Tabs里面存的好象是上次的标签页

御宅暴君 说:
Nov 22, 2015 06:45:59 PM

Google Extension: Session Buddy.

Avatar_small
依云 说:
Nov 22, 2015 11:50:35 PM

这个是 session 管理扩展呀,能搞到 URL 的列表么?

Avatar_small
依云 说:
Nov 22, 2015 11:51:38 PM

不太清楚,反正是我把 Chrome 关掉之后读的,所以读到的是关闭之前的信息。

御宅暴君 说:
Nov 23, 2015 09:08:28 AM

能,选定 session, 导出,只筛选出 URL, 保存为文件,完毕。

不过比你原来的办法也快不了多少。

keyi_bu 说:
Nov 23, 2015 06:19:55 PM

对于 chrome, 有 open with firefox 这个扩展,对于 firefox, 有 open in chrome

Avatar_small
依云 说:
Nov 23, 2015 08:37:11 PM

我是说什么时候 Chrome 扩展能开子进程了呢,原来要装另外的程序。而且还要调用 sudo……而且是个很粗糙的程序。真不明白一个 .desktop 文件一个 bash 脚本,为什么要拿 C 封装,似乎还不提供源码。另外它并不符合我的需求,因为它只能一个个地转啊。

对于火狐,想怎么弄都可以的啦,因为有最高权限的「浏览器控制台」、「代码草稿纸」、mozrepl 扩展,甚至还有「浏览器工具箱」直接另外个火狐来调试,想要什么功能直接写段代码跑就可以了。

如果只有一个链接/标签页需要转的话,我早有 FireGesture 命令可以调用其它浏览器了。

@xuboying 说:
Nov 24, 2015 12:55:36 AM

你可以用用wxpython之类的写个基于webkit的浏览器来运行微信啊
如果系统默认不调用webkit的话可以试试cef
https://bitbucket.org/chromiumembedded/cef
在VSC++下编译过,linux没尝试过。

Avatar_small
依云 说:
Nov 24, 2015 01:50:22 PM

嗯我最近也想到了。

@xuboying 说:
Nov 24, 2015 03:16:37 PM

我正好在写类似的,顺手贴一下
def init_frame(self):
self.frame = self.res.LoadFrame(None, 'mainFrame')
self.m_panel1 = xrc.XRCCTRL(self.frame, 'm_panel1')
self.m_panel2 = xrc.XRCCTRL(self.m_panel1, "m_panel2")
self.browser = wx.html2.WebView.New(self.m_panel2)
self.m_panel2.GetSizer().Add(self.browser, 1, wx.EXPAND, 0)
self.Bind(wx.html2.EVT_WEBVIEW_NAVIGATING, self.browser_OnNavitage,self.browser)
self.browser.LoadURL("http://wx.qq.com")
self.frame.Show()
#-------------------------------------------------------------------------------
def browser_OnNavitage(self,event):
tergetUrl = event.GetURL()
print tergetUrl
#event.Veto()

Avatar_small
依云 说:
Nov 24, 2015 04:54:28 PM

完成了一个,桌面通知需要另外安装插件、Web Audio API 不支持、window.open 还没覆盖。
https://gist.github.com/lilydjwg/e4ded2f1ca3828ac64d2

@xuboying 说:
Nov 24, 2015 05:26:40 PM

比我想象的多了好多代码

Avatar_small
依云 说:
Nov 24, 2015 05:49:35 PM

嗯,因为要缓存啊,要保存 cookie 啊什么的。其实我是在以前的旧代码的基础上改的。

旧版本的火狐可以直接用「-chrome」加载,现在的版本不行了。也许可以拿 xulrunner 弄一个?

@xuboying 说:
Nov 24, 2015 08:23:27 PM

我还真写过xul程序,不过求放过。。。火狐不是耗cpu么
原来的设想是只是简单的捕获webkit超链接事件,遇到匹配的网址就用firefox打开,被你的设计完全碾压了

Avatar_small
依云 说:
Nov 24, 2015 10:17:52 PM

火狐耗 CPU 又不代表 xulrunner 也会那样,毕竟我那是安装了好几十个扩展的火狐嘛。

微信的跳转网址没法直接交给火狐打开的,会返回空白页面。从 URL 解析得到真正要访问的 URL,正好跳过那个提示页面更好。

@xuboying 说:
Nov 25, 2015 04:02:08 PM

我看了我的xul程序,现在的参数变了
firefox.exe -app application.xulapp
早上访问你的博客以为我的显示器坏了

@xuboying 说:
Nov 25, 2015 04:09:50 PM

按了文件助手的链接以后ff窗口退出了,进程还在...

@xuboying 说:
Nov 25, 2015 07:57:33 PM

放弃xul了
firefox.exe -no-remote -P "newprofile" wx.qq.com

reverland 说:
Nov 25, 2015 10:38:49 PM

> 最近我的火狐运行微信时会持续占用一个 CPU 核

这是什么鬼。。。

Avatar_small
依云 说:
Nov 26, 2015 06:51:56 PM

-app 跟 xulrunner 一样的呀,和 -chrome 不一样的。后者是将指定的地址作为浏览器 chrome 来用的意思。

@xuboying 说:
Nov 26, 2015 10:20:59 PM

Chrome,Google chrome 傻傻分不清楚

greatghoul 说:
Nov 26, 2015 11:28:52 PM

这方法真是不走寻常路呀,厉害。

Avatar_small
依云 说:
Nov 27, 2015 12:06:19 AM

寻常路不太能走通嘛。

Avatar_small
依云 说:
Nov 27, 2015 12:07:15 AM

Google Chrome 是 Google 家的 chrome,火狐是 Mozilla 家的 chrome 啦。指的是浏览器外壳。

kmxz 说:
Jan 15, 2016 09:28:45 PM

PushBullet 大法好,退「文件传输助手」保平安。

tk 说:
Mar 12, 2016 02:16:43 AM

我也发现最近chrome不时地崩溃,在tab打开太多的时候突然变慢,大家有这样的情况吗?


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

部分静态文件存储由又拍云存储提供。 | Theme: Aeros 2.0 by TheBuckmaker.com