Chrome History Extraction

スポンサーリンク

Chrome History Extraction

Chromeの履歴を抽出する方法はありますか。
Python、GAS、javascript、shellなどで自動化できるものが望ましいです。

Google Chrome の履歴は、ローカルの SQLite データベースに保存されています。このデータベースから履歴を抽出するには、いくつかの方法が考えられます。

以下に、Python と SQLite を使用して Chrome の履歴を抽出する方法を示します:

  1. Python を使用して Chrome の履歴を抽出する:

    python
    import 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 が実行中の場合、履歴データベースにアクセスすることはできません。

  2. JavaScript や GAS での直接的なアクセス:

    JavaScript または Google Apps Script (GAS) で直接ブラウザの履歴にアクセスすることは、セキュリティの観点から制限されています。したがって、この方法でのアクセスはできません。

  3. Shell スクリプト:

    シェルスクリプトを使用して SQLite データベースにクエリを実行することも可能です。しかし、この方法は上述の Python スクリプトと非常に類似しているため、繰り返しの説明は省略します。

これらの方法の中で、Python を使用した方法が最も一般的で効果的です。データベースの構造やクエリを変更することで、さまざまな情報を取得することができます。

・Pythonで、MacOSでも可能でしょうか、
・履歴より、一定の文字列「test」を含むURL

もちろん、macOSでもPythonを使用してChromeの履歴データベースにアクセスすることができます。ただし、データベースの保存場所がWindowsとは異なります。

以下は、macOSのChrome履歴データベースから、文字列「test」を含むURLを抽出するPythonコードの例です:

python
import 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を抽出する手順です:

  1. Chromeの履歴データベースをコピーします。
  2. コピーしたデータベースから必要な情報を取得します。

以下のコードは、上記の手順を実装したものです:

python
import 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が実行中でも履歴データベースにアクセスできるようになります。

スポンサーリンク
Heywaをフォローする

コメント

タイトルとURLをコピーしました