【发布时间】:2018-06-08 07:45:11
【问题描述】:
我需要在不干扰用户的情况下从 python 3 中所有打开的 Google Chrome 选项卡中获取所有 url。我在 Windows 10 上使用 Microsoft Visual Studio Python3
我试过了:
直接用 open(当前选项卡的路径)打开它——因为我没有权限而不起作用——我认为它被锁定是因为 chrome 主动写入它。
Current_Tabs_Source = open(r"C:\Users\Beni\AppData\Local\Google\Chrome\User
Data\Default\Current Tabs", "r")
Current_Tabs_Raw = Current_Tabs_Source.read()
print(Current_Tabs_Raw) #just for checking
PermissionError: [Errno 13] 权限被拒绝
通过 sglite3 打开 -- 不起作用,因为它被锁定了。而且我在任何地方都找不到密码。我试图打开历史记录的 url,但它无论如何都不起作用。
import sqlite3
from os import path
data_path = path.expanduser('~') + r"\AppData\Local\Google\Chrome\User
Data\Default"
files = listdir(data_path)
history_db = path.join(data_path, 'history')
c = sqlite3.connect(history_db)
cursor = c.cursor()
select_statement = "SELECT urls.url, urls.visit_count FROM urls, visits
WHERE urls.id = visits.url;"
cursor.execute(select_statement)
results = cursor.fetchall()
print(results) #just for checking
sqlite3.OperationalError: 数据库被锁定
使用 selenium 和第 3 方 chrome 扩展将所有 url 复制到剪贴板 - 不起作用,因为这些扩展仅在活动 selenium 窗口中工作。所以我不想复制带有标签的 Windows。
我考虑过破解一个 chrome 扩展,它每 30 秒将 URL 复制到一个临时文件。但我只知道最少的 Javascript,所以这件事让我发疯。
那么有谁知道在 Python 中做到这一点的方法吗?非常感谢任何其他解决方案。
【问题讨论】:
-
我想不出任何可能的方法可以在 Python 中完成。我什至不知道你是如何用 SQLite 尝试这个的,一种数据库语言......你最好的选择确实是更前端的东西,比如 JavaScript。
-
如果您能分享您迄今为止使用过的代码,这将很有帮助,以便我们更好地了解您的方法
-
@HamSam 我上传了一些代码,这样你就可以看到我在尝试什么
-
您是否尝试过以管理员身份运行它?这可能会给您带来与“PermissionError: [Errno 13] Permission denied”不同的错误
-
@tww0003 刚刚检查过这是否有效。我以管理员身份打开 Visual Studio 并运行我的代码,但它仍然给我完全相同的错误。
标签: python python-3.x google-chrome selenium sqlite