Firefox3の履歴などの情報を抽出
パソコンを複数台使っていると、Webの履歴が分散してしまいます。ブックマークとかしておけば良さそうですが、見たときはあまり重要じゃないと思って後でやっぱり...みたいなことが、今までほんの偶にありました。
それならブラウザを介さずに履歴を見るために、履歴をエクスポートするのが簡単な方法かな、と思いつきました。
では、私が使っているFirefox3で履歴のエクスポートをするにはどうすれば良いのかな?と調べてみたら、そういえばSQLiteのデータベースで管理しているみたいだ、ってのを思い出したので、それらしきファイル(=サイズが大きいもの)を覗いてみました。
Firefox3の履歴などのデータはSQLiteのデータとして格納されており、WindowsXPのデフォルトでは以下のディレクトリ
C:\Documents and Settings\{ユーザ名}\Application Data\Mozilla\Firefox\Profiles\{英数字}.default ({}で囲んだ部分は利用者ごとに異なります)
の"places.sqlite"に入っています。
Firefoxが起動中だと直接開けないので、他の場所にコピーしてから作業。ここでは"C:\places.sqlite"とします。
JDBCであれば、SQLiteのJDBCドライバ*1を使って、
Class.forName("org.sqlite.JDBC"); Connection conn = DriverManager.getConnection("jdbc:sqlite:C:\\places.sqlite");
のようにして接続。
"MOZ_PLACES"というテーブルに履歴が登録されているのがわかります。
Firefox3の「よく見るページ」という機能でランキングされる候補は、おそらくこのデータベースの"visit_count"(訪問回数)と"frequency"(頻度)から算出されていると推測されます。
そしてファイルの上限(今16MBくらいなのでこれが上限?)を超えたら"last_visit_date"(最後に訪問した日)の値が古い方から消されていくんでしょうか?(いや、足りなくなったら4MB単位くらいで増えていくのかも...)
他にも"MOZ_BOOKMARKS"などのテーブルがあるので、何かに使えるかもしれませんね。
*1:http://www.zentus.com/sqlitejdbc/などからダウンロードしてください。