Có cách nào để lấy url từ tab hiện tại trong google-chrome không?


13

Tôi đã từng làm điều đó trên firefox bằng lệnh python, nhưng gần đây có gì đó đã thay đổi và tôi không thể lấy URL nữa!

  • Những gì được sử dụng để làm việc với 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

Bất cứ ai có thể cho tôi biết làm thế nào để làm điều này trong firefox và / hoặc chrome?

LƯU Ý : Tôi không hiểu python, tôi chỉ tìm thấy các lệnh đó ở đâu đó và sử dụng chúng trong bash!


Một cái gì đó như selen sẽ phù hợp hơn cho việc này
cristi

Câu trả lời:


6

Tôi đã có cùng một vấn đề và đã khắc phục được điều đó trong khi cố gắng giải quyết nó, vì vậy tôi sẽ đăng giải pháp của mình (khá tệ) tại đây.

Tôi sử dụng wmctrl (bạn có thể sử dụng xprop thay thế) và xdotool để làm điều này. Trước đây, tôi đã sử dụng tiện ích mở rộng để hiển thị URL trong thanh tiêu đề (sau đó bạn có thể truy cập url qua xprop hoặc wmctrl). Cả hai phương pháp đều hoạt động khá tốt mặc dù nó không thực sự "sạch".

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"

Bây giờ bạn có url trong clipboard của bạn. Sau đó tôi sử dụng xclip để làm việc với URL.

Tôi rất muốn thấy một giải pháp thực sự cho vấn đề này nếu có ai tìm thấy.


3

Bạn có thể nói lỗi, mà bạn nhận được sau khi thực hiện, bởi vì tập lệnh đang làm việc cho tôi. Có cùng một câu hỏi ở đây, được trả lời bằng cách sử dụng phpperl:

URL đầu ra của các tab firefox mở trong thiết bị đầu cuối

Vì phần chính trong python, đây là một kịch bản python hoàn toàn, để làm điều tương tự, hãy thử nó:

    #!/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

Tôi thay /home/username/.mozilla/firefox/xxxxx.default/sessionstore.jstập tin bằng recovery.js. Trong trường hợp của tôi (Mozilla Firefox 44.0, openSUSE 13.1), tệp này là ~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js. Và cuối cùng nhưng không kém phần quan trọng, tập lệnh không hoạt động nếu bạn có hai trường hợp Firefoxchạy.


Tệp tương đương cho Chrome là gì?
paraurar gaurav
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.