Есть ли способ получить Chrome History и Bookmarks без использования его локальной базы данных на Python? - PullRequest
2 голосов
/ 03 мая 2019

Я пытаюсь создать программу на 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

Есть ли способ обойти это?

Я пытался изучить способы использования API Chrome для получения истории (https://developers.chrome.com/extensions/history), но, похоже, я могу использовать API только с использованием JavaScript и расширения Chrome.

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 Ответ

1 голос
/ 03 мая 2019

Вы можете просмотреть исходный файл истории на компьютере с программой, скопировав файл истории в другое место на вашем компьютере, которое отсутствует в папках сохранения 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...