有没有办法从google-chrome中的当前标签获取网址?


13

我曾经使用python命令在firefox上执行此操作,但是最近发生了一些变化,无法再获取URL!

  • 使用Firefox的工具:

    #!/bin/bash
    current_tab_num () {
        python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nprint str(jdata["windows"][0]["selected"])'
    }
    current_tab_url () {
        sed -n "$(current_tab_num)p" <(python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nfor win in jdata.get("windows"):\n\tfor tab in win.get("tabs"):\n\t\ti = tab.get("index") - 1\n\t\tprint tab.get("entries")[i].get("url")')
    }
    current_tab_url

谁能告诉我如何在Firefox和/或Chrome中执行此操作?

注意:我不了解python,我只是在某个地方找到了这些命令,并在bash中使用了它们!


像硒这样的东西更适合于此
cristi

Answers:


6

我遇到了相同的问题,并在尝试解决该问题时解决了这个问题,因此我将在此处发布我的解决方案(这很糟糕)。

我使用wmctrl(可以使用xprop代替)和xdotool来做到这一点。以前,我使用扩展名使URL在标题栏中可见(然后您可以通过xprop或wmctrl访问该URL)。两种方法都可以很好地工作,尽管它并不是真正的“干净”。

id=$(wmctrl -l | grep -oP "(?<=)(0x\w+)(?=.*Chromium)") //Put here the regex for the browser you use
xdotool key --window $id "ctrl+l"
xdotool key --window $id "ctrl+c"

现在,您的剪贴板中有该URL。然后,我使用xclip处理URL。

如果有人找到解决方案,我希望看到一个真正的解决方案。


3

您能否告诉您执行后出现的错误,因为该脚本对我有用。这里有相同的问题,使用php和回答perl

终端中打开的Firefox选项卡的输出URL

由于python的主要部分,这是一个纯python脚本,要执行相同的操作,请尝试一下:

    #!/usr/bin/python
    import json
    f = open("recovery.js","r")
    jdata = json.loads(f.read())
    f.close()

    number_of_selected_tab = jdata["windows"][0]["selected"]

    tab_number = 1
    for win in jdata.get("windows"):
        for tab in win.get("tabs"):
            if number_of_selected_tab == tab_number :
                tab_index = tab.get("index") - 1
                print tab.get("entries")[tab_index].get("url")
            tab_number = tab_number + 1

我将/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js档案替换为recovery.js。就我而言(Mozilla Firefox 44.0,openSUSE 13.1),文件为~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js。最后但并非最不重要的一点是,如果您有两个Firefox正在运行的实例,脚本将不起作用。


Chrome的等效文件是什么?
gaurav parashar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.