みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

自分の日記のデータをまとめて取得する

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

自分の日記のデータをまとめて取得する

投稿記事 by みけCAT » 6年前

このサイトにおいて、プライベートメッセージにはエクスポート機能がありますが、日記のエクスポート機能は無さそうです。
そこで、自分が書いた日記のデータをまとめて取得するプログラムを書いてみました。

今回のプログラムの取得対象は以下です。
  • 各記事の投稿日時
  • 各記事のタイトル
  • 各記事の日記本体のソースコード(BBCode)
  • 各記事の添付ファイルの情報
    • 添付ファイル名
    • 記事中の添付ファイル番号
    • 添付ファイルのコメント
    • 添付ファイルのデータ本体
今回のプログラムでは、例えば以下は取得対象にしていません。
  • 各記事のカテゴリー
  • 各記事のレンダリング結果(HTML)
  • 各記事に付けられたコメント
  • 各記事における投票
  • 添付ファイルID (URLに含まれる番号)
今回の実装ではデータの取得にwgetを用いるので、「wget」コマンドを利用可能な状態の環境(パスが通っているなど)が必要です。
また、今回の実装ではPerlを用いたので、Perlの実行環境が必要です。

利用するには、まずフォーラムにログインし、「User-Agent」「phpbb3_o08ji_sid」「出力を捨てるのに用いるファイル」を設定します。
「User-Agent」は、利用しているブラウザを表す文字列で、例えば確認くんの「現在のブラウザー」(表示サイズを除く)で得られます。
「phpbb3_o08ji_sid」はwgetにログイン状態を引き継ぐためのデータです。
日記の編集機能を用いてBBCodeを取得するため、ブラウザからwgetにログイン状態を引き継ぐことが必要です。
例えばFirefoxの場合は、フォーラムの画面を右クリックして「ページの情報を選択」を選び、「セキュリティ」タブの「Cookieを表示」を押し、
「Cookie 名」が「phpbb3_o08ji_sid」となっている行を選択し、「内容」を見ることで得られます。
「出力を捨てるのに用いるファイル」は、/dev/nullのような書き込みを無視してくれるファイル(デバイス)を指定します。

「phpbb3_o08ji_sid」はソースコードまたはコマンドラインで設定し、他の2項目はソースコードで設定します。

設定を行った後プログラムを実行すると、以下のデータがカレントディレクトリに保存されます。 (ファイル/ディレクトリ名はデフォルトのもの)
articles.csv : 記事の情報
articlesディレクトリ : 各記事のデータ (ファイル名:記事ID.txt)
attachments.csv : 添付ファイルの情報
attachmentsディレクトリ : 添付ファイル本体のデータ

これがプログラムです。
► スポイラーを表示
★免責事項★
  • このプログラムは無保証です。使用したい場合は自己責任でお使いください。
  • このプログラムは現状のフォーラムをターゲットに作られています。フォーラムのアップデート後もうまく動作するかはわかりません。
  • このプログラムはサーバーなどへの攻撃を目的とするものではありません。
[hr]

取得したデータを用いて、自分のこれまでの日記の月ごとの投稿数をまとめてみました。
nikki-count-201802.png
自分の月ごとの日記投稿数
nikki-count-201802.png (19.28 KiB) 閲覧数: 1104 回
このフォーラムができてから約4年はわりと日記を書いていますが、その後は日記の投稿数が少ないことが読み取れます。

コメントはまだありません。