Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从每个打开的Google Chrome选项卡获取所有URL_Python_Python 3.x_Google Chrome_Selenium_Sqlite - Fatal编程技术网

Python:从每个打开的Google Chrome选项卡获取所有URL

Python:从每个打开的Google Chrome选项卡获取所有URL,python,python-3.x,google-chrome,selenium,sqlite,Python,Python 3.x,Google Chrome,Selenium,Sqlite,我需要从python 3中所有打开的Google Chrome选项卡中获取所有URL,而无需与用户交互。使用Microsoft Visual Studio Python3在Windows 10上进行Im 我试过: 直接用open(当前标签的路径)打开它——因为我没有权限,所以不起作用——我想它被锁定了,因为chrome会主动写入它 Current_Tabs_Source = open(r"C:\Users\Beni\AppData\Local\Google\Chrome\User Data\D

我需要从python 3中所有打开的Google Chrome选项卡中获取所有URL,而无需与用户交互。使用Microsoft Visual Studio Python3在Windows 10上进行Im

我试过:

直接用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.0错误:数据库已锁定

使用selenium和第三方chrome扩展将所有URL复制到剪贴板——不起作用,因为这些扩展只在活动的selenium窗口中起作用。因此,我不想复制包含选项卡的窗口

我考虑过破解一个chrome扩展,每30秒将URL复制到一个临时文件中。但我只知道最少的Javascript,所以这件事让我抓狂


那么,有人知道用Python实现这一点的方法吗?非常感谢任何其他解决方案。

如果要访问数据库,请关闭所有浏览器


()

当我们访问任何浏览器的
SQLite
数据库时,我们必须先关闭特定的浏览器

此外,这里使用的SQL命令将获取所有重复的行

需要更改“select_语句”

select_statement = "SELECT distinct urls.url, urls.visit_count FROM urls, visits WHERE urls.id = visits.url;"
此外,我们需要添加一个循环来打印chrome历史数据库中的所有“URL”

for url, count in results:
    print(url)  # print urls line by line

然而,这将为我们提供Chrome浏览器的全部历史记录,而不是当前打开的所有选项卡所需的URL。

我想不出任何可能的方法可以在Python中实现这一点。。我甚至不知道你是如何尝试使用SQLite,一种数据库语言。。。你最好的选择确实是一些更前端的东西,比如JavaScript。如果你能分享你迄今为止使用过的代码,这样我们就能更好地理解你的approach@HamSam我上传了一些代码,这样你就可以看到我在做什么了。你作为管理员试过运行它吗?这可能会给您一个与“PermissionError:[Errno 13]权限被拒绝”不同的错误@tww0003刚刚检查了这是否有效。我以管理员的身份打开了VisualStudio并运行了我的代码,但它仍然给出了完全相同的错误。