是否可以在不使用Python本地数据库的情况下获取Chrome历史记录和书签?

时间:2019-05-03 02:20:44

标签: python google-chrome

我正在尝试创建一个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历史记录/书签。

1 个答案:

答案 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"