我正在尝试创建一个Python程序,该程序能够检索Chrome历史记录和用户的书签;但是,在C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\History
中使用本地存储的数据库时,我遇到的问题是,如果当前打开了Chrome浏览器,则会收到错误消息:
Traceback (most recent call last):
File "C:/Users/*****/PycharmProjects/*******/chromer_history_reader.py", line 10, in <module>
cursor.execute(select_statement)
sqlite3.OperationalError: database is locked
有没有办法解决这个问题?
我试图研究使用Chrome API获取历史记录(https://developers.chrome.com/extensions/history)的方法,但是看来我只能通过JavaScript和Chrome扩展程序使用API。
import os
import sqlite3
from pprint import pprint
history_db = os.getenv("APPDATA") + "\\..\\Local\\Google\\Chrome\\User Data\\Default\\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()
pprint(results)
我希望即使Chrome当前处于打开状态,也能够查看用户的Chrome历史记录/书签。
答案 0 :(得分:1)
通过使用以下代码将历史记录文件复制到Chrome保存文件夹中不在计算机上的其他位置,您可以使用该程序在计算机上查看原始历史记录文件
import shutil
shutil.copy2(os.getenv("APPDATA") + "\\..\\Local\\Google\\Chrome\\User Data\\Default\\History", "NEW FILE LOCATION\\HISTORY")
history_db = "NEW FILE LOCATION\\HISTORY"