今までのこのブログを見てきた人はお気づきでしょうか。明確に変化した部分があります。
・・・正解は、つい先程を持ちまして、mtg関連のエントリを全て削除しました。ブログテーマすら残していません。今後、このブログでは「思うこと」エントリ内でしかmtgに関わる話題を出しません。基本的には・・・。
バックアップのためのプログラムを完成させたので、それを用いてブログテーマ「日常」「MTG(大会)」「MTG(MO)」「MTG(その他)」のエントリのバックアップを取りました。htmlタグは残さず、単なるテキストデータのみを抽出したので、バックアップデータの内容は見にくいです。tableタグを用いて見やすくしたり赤文字・太文字にして強調したりしていた部分は違和感が残ります。内容を見る度にブラウザが立ち上がっては面倒で仕方ないので、まぁ妥協です。
プログラミングの内容的な話をすると、アメンバー限定公開のエントリは個別に取得する必要がありました。あれはユーザ情報を参照するので、当たり前ですね。あと、簡単そうに見えて、何だかんだで無限ループや無駄に大量な処理を発生しかねない要素がいくつかあったため、それを回避するために少々時間がかかってしまいました。いつ無限ループや無駄に大量な処理が発生しても良い様にタスクマネージャーを常時待機させていましたが、リスク回避のための処理が仇となってバグを沢山産むことになってしまいました。
今回のプログラムは、各ページへのアクセス間隔を考慮せずに作られています。これは反省すべき点です。様々なページへアクセスして回るプログラムであるクローラーを作成する際に気を付けなければならない要素の1つにアクセス間隔があります。プログラムほど素早くアクセスされてはサーバーの負荷が大きくなるので、クローラーを作成する際はサーバーへの負荷を軽減するためにアクセスの間隔を意図的に長く設定することがマナーとして推奨されます。今回の件でアクセスしたページ数はテストの時も含めて200ページほどで、断続的ではありませんでした。アメブロ程のサーバーなら、負荷()でしょう。それでも、プログラム実行後は1秒間に数ページの速度でアクセスしていたでしょうから、これからはアクセス間隔も考慮したプログラムを作るように気を付けます。とは言っても、次に使うのはいつになるのかと言う感じではありますが。
C言語ならもっと時間がかかったでしょうが、Rubyは楽ですね。Webページのソースチェックから1時間と少々でクローラーを作成できました。処理速度は遅いRubyですが、今後のプログラミングの主軸となりそうです。
では。