Webブラウザの履歴取得方法まとめ

投稿日 : 2007年12月1日 23:37

 各Webブラウザの履歴を他のソフトウェアから取得しようとしたときの方法についてキーワードをまとめました(Windowsに限る)。Firefoxがめんどいよー。

Internet Explorer5.5~7

 Keyword: IUrlHistory, IUrlHistoryStg

 IUrlHistoryインタフェースを使ってIEの履歴にアクセスできます。

Firefox2

 Keyword: Mork, history.dat

 Mork形式という変態フォーマットが使用されています。履歴が記録されているファイルは%appdata%\Mozilla\Firefox\Profiles\(ランダムな値).defaultフォルダにあるhistory.dat。

 各言語での実装は下記の「Morkの謎~」にリンクがあります。またWikipediaにもC++による実装のリンクがあります。Javaのも見つけたので載せておきます。動作はPerlのCPANのFile::Morkのみ確認しました。他のはマルチバイト対応してないかも。.NETによる実装は見つからなかったです……。誰か作ってー。

Firefox3

 Keyword: Places, SQLite, places.sqlite

 Firefox 3からはMorkに代わりSQLiteが使用されるようです。Beta1では、places.sqliteに履歴情報が含まれて居ます。SQLiteとC#で検索したらCodeZineのεπιστημηさんの記事が見つかりました。以下は参考までに。

Opera9

 Keyword: global.dat

 テキスト形式で一番単純です。%appdata%\Opera\Opera\profileフォルダにglobal.datがあります。UTF-8エンコードです。タイトル、URL、最終アクセス日時(1970年1月1日からの経過秒)、よくわからない値(ランクに関係してる?)の4行が入ってます。

Safari3

 Keyword: History.plist, WebHistoryFileVersion

 %appdata%\Apple Computer\SafariフォルダにHistory.plistがあります。Apple独自のXML形式でUTF-8エンコード。Public BetaではWebHistoryFileVersionが1と記述されています。URL、最終アクセス日時(2000年12月31日からの経過秒かな)、タイトル、訪問回数が記録されています。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>WebHistoryDates</key>
 <array>
  <dict>
   <key></key>
   <string>http://www.yahoo.com/</string>
   <key>lastVisitedDate</key>
   <string>218249073.0</string>
   <key>title</key>
   <string>Yahoo!</string>
   <key>visitCount</key>
   <integer>1</integer>
  </dict>
 </array>
 <key>WebHistoryFileVersion</key>
 <integer>1</integer>
</dict>
</plist>
コメントの入力
タイトル
 
名前
 
Url
コメント