サーバレス練習帳

着眼大局着手小局

【python】Google Chromeの閲覧履歴を見よ!

使うテーブルはurls(親テーブル)とvisits(子テーブル)です。それぞれ定義は次の通り。

('table', 'urls', 'urls', 4, 'CREATE TABLE urls(id INTEGER PRIMARY KEY AUTOINCREMENT,url LONGVARCHAR,title LONGVARCHAR,visit_count INTEGER DEFAULT 0 NOT NULL,typed_count INTEGER DEFAULT 0 NOT NULL,last_visit_time INTEGER NOT NULL,hidden INTEGER DEFAULT 0 NOT NULL)')
('table', 'visits', 'visits', 6, 'CREATE TABLE visits(id INTEGER PRIMARY KEY,url INTEGER NOT NULL,visit_time INTEGER NOT NULL,from_visit INTEGER,transition INTEGER DEFAULT 0 NOT NULL,segment_id INTEGER,visit_duration INTEGER DEFAULT 0 NOT NULL,incremented_omnibox_typed_score BOOLEAN DEFAULT FALSE NOT NULL)')

@@@ 以降、検討過程 @@@


◆はじめに
Chromeの閲覧履歴って、Historyというsqliteファイルに格納させているそうです。このファイルです。

'C:\Users\(ユーザ名)\AppData\Local\Google\Chrome\User Data\Default\History'

まずは解析したいので、このファイルをコピーしてきて、pythonで解析してみましょう!

◆テーブル一覧の取得

##### IMPORT
import sqlite3
from contextlib import closing

##### CONST
db = '.\History'

##### IMPLEMENTATION
with closing(sqlite3.connect(db)) as conn:
    c = conn.cursor()
    select_sql = "select * from sqlite_master where type='table'"
    for row in c.execute(select_sql):
        print(row)

こんなテーブルがあるみたいでした。
meta, urls, sqlite_sequence, visits, visit_source, keyword_search_terms, downloads, downloads_url_chains, downloads_slices,segments, segment_usage, typed_url_sync_metadata


◆urlsを見てみよう!
こういう定義でした。
>||('table', 'urls', 'urls', 4, 'CREATE TABLE urls(id INTEGER PRIMARY KEY AUTOINCREMENT,url LONGVARCHAR,title LONGVARCHAR,visit_count INTEGER DEFAULT 0 NOT NULL,typed_count INTEGER DEFAULT 0 NOT NULL,last_visit_time INTEGER NOT NULL,hidden INTEGER DEFAULT 0 NOT NULL)')|