Chrome History Extraction
Chromeの履歴を抽出する方法はありますか。
Python、GAS、javascript、shellなどで自動化できるものが望ましいです。
Google Chrome の履歴は、ローカルの SQLite データベースに保存されています。このデータベースから履歴を抽出するには、いくつかの方法が考えられます。
以下に、Python と SQLite を使用して Chrome の履歴を抽出する方法を示します:
-
Python を使用して Chrome の履歴を抽出する:
pythonimport sqlite3 import os # Chrome の履歴データベースへのパスを設定(以下は Windows の例) path_to_history = os.path.expanduser('~') + r"\AppData\Local\Google\Chrome\User Data\Default\History" # データベースへの接続を確立 connection = sqlite3.connect(path_to_history) cursor = connection.cursor() # urls テーブルからデータを抽出 cursor.execute("SELECT url, title, last_visit_time FROM urls") history = cursor.fetchall() # データベース接続を閉じる connection.close() # 抽出したデータを表示 for entry in history: print(entry)
注意: 上記のコードは、Chrome が実行中でない場合にのみ機能します。Chrome が実行中の場合、履歴データベースにアクセスすることはできません。
-
JavaScript や GAS での直接的なアクセス:
JavaScript または Google Apps Script (GAS) で直接ブラウザの履歴にアクセスすることは、セキュリティの観点から制限されています。したがって、この方法でのアクセスはできません。
-
Shell スクリプト:
シェルスクリプトを使用して SQLite データベースにクエリを実行することも可能です。しかし、この方法は上述の Python スクリプトと非常に類似しているため、繰り返しの説明は省略します。
これらの方法の中で、Python を使用した方法が最も一般的で効果的です。データベースの構造やクエリを変更することで、さまざまな情報を取得することができます。
・Pythonで、MacOSでも可能でしょうか、
・履歴より、一定の文字列「test」を含むURL
もちろん、macOSでもPythonを使用してChromeの履歴データベースにアクセスすることができます。ただし、データベースの保存場所がWindowsとは異なります。
以下は、macOSのChrome履歴データベースから、文字列「test」を含むURLを抽出するPythonコードの例です:
pythonimport sqlite3
import os
# macOSのChromeの履歴データベースへのパスを設定
path_to_history = os.path.expanduser('~') + "/Library/Application Support/Google/Chrome/Default/History"
# データベースへの接続を確立
connection = sqlite3.connect(path_to_history)
cursor = connection.cursor()
# urls テーブルから「test」を含むURLを抽出
cursor.execute("SELECT url, title, last_visit_time FROM urls WHERE url LIKE ?", ('%test%',))
filtered_history = cursor.fetchall()
# データベース接続を閉じる
connection.close()
# 抽出したデータを表示
for entry in filtered_history:
print(entry)
注意点:
- 上記のコードは、Chromeが実行中でない場合にのみ機能します。Chromeが実行中の場合、履歴データベースにアクセスすることはできません。
- 上記のパスは、標準的な場所にChromeがインストールされている場合のものです。異なるプロファイルやカスタムインストールの場合、パスが異なる可能性があります。
SQLiteのDBをコピーしてからアクセスすることもで来ますか
はい、SQLiteのDBファイルをコピーしてからアクセスすることは可能です。これは、特にChromeが実行中の場合や、DBファイルへの直接アクセスが制限されている場合に有効です。
以下は、Pythonを使用してChromeの履歴データベースをコピーし、そのコピーから文字列「test」を含むURLを抽出する手順です:
- Chromeの履歴データベースをコピーします。
- コピーしたデータベースから必要な情報を取得します。
以下のコードは、上記の手順を実装したものです:
pythonimport sqlite3
import os
import shutil
# macOSのChromeの履歴データベースへのパスを設定
path_to_history = os.path.expanduser('~') + "/Library/Application Support/Google/Chrome/Default/History"
copied_path = "/tmp/copied_history"
# データベースをコピー
shutil.copy(path_to_history, copied_path)
# コピーしたデータベースへの接続を確立
connection = sqlite3.connect(copied_path)
cursor = connection.cursor()
# urls テーブルから「test」を含むURLを抽出
cursor.execute("SELECT url, title, last_visit_time FROM urls WHERE url LIKE ?", ('%test%',))
filtered_history = cursor.fetchall()
# データベース接続を閉じる
connection.close()
# 抽出したデータを表示
for entry in filtered_history:
print(entry)
# 必要に応じてコピーしたデータベースを削除
os.remove(copied_path)
この方法を使用すると、Chromeが実行中でも履歴データベースにアクセスできるようになります。
コメント