有沒有辦法從 google-chrome 中的目前分頁取得 url?

有沒有辦法從 google-chrome 中的目前分頁取得 url?

我曾經在 Firefox 上使用 python 命令執行此操作,但最近發生了一些變化,我無法再獲取 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中使用了它們!

答案1

我遇到了同樣的問題,並在嘗試解決它時解決了這個問題,所以我將在這裡發布我的解決方案(這非常糟糕)。

我使用 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"

現在您的剪貼簿中已包含該網址。然後我使用 xclip 來處理該 URL。

如果有人找到的話,我很想看到一個真正的解決方案。

答案2

您能否說出執行後出現的錯誤,因為該腳本正在為我工作。這裡有同樣的問題,使用phpand回答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

相關內容