Python:从每个打开的Google Chrome选项卡获取所有URL
我需要从python 3中所有打开的Google Chrome选项卡中获取所有URL,而无需与用户交互。使用Microsoft Visual Studio Python3在Windows 10上进行Im 我试过: 直接用open(当前标签的路径)打开它——因为我没有权限,所以不起作用——我想它被锁定了,因为chrome会主动写入它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
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并运行了我的代码,但它仍然给出了完全相同的错误。