« タロットの偶奇で易の卦を出す | トップページ | cp_with_prefix.pl: ディレクトリ平坦化機能付きコピー »

2012年1月 7日 (土)

ブログのバックアップ&「ひとこと」のクロスリファレンス

私の《ひとこと》サイトで「クロスリファレンス」を張ろうと思い立った。少し試した段階でスパム制限等のため時間がかかることがわかったので、その前に《ひとこと》を「ダンプ」つまりフルバックアップすることにした。

ココログの機能として、他所に移転するのを支援するために、バックアップの機能がもとからあるが、これは、元の URL やトラックバック URL、記事 ID などを記録しないため、今回の目的には適さない。少し迷惑かなぁと思いつつ、 XMLRPC と普通のページ読み込みの両方を使って、「フルバックアップ」するスクリプトを書いた。それが dump_blog.pl である。

このフルバックアップにもとづいて、当初は、URL マップみたいなのを XMLに書いて、Ajax で読み込もうかとも考えたが、私以外の場所で使うことを想定すると、これが巨大になることもありえるかもしれず、するとただでさえ重い《ひとこと》サイトがさらに重くなるかもしれないので、その方法は採用しなかった。代わりに単純に後向きの参照としてトラックバックを張ることにした。スクリプトでリンクを張っているため、検索エンジンにその密結合ぶりをアピールできてないことを疑っていたので、それを補う意味でもこの方法が良いと思われた。それを実現するのが、xref_trackback.pl である。
使用方法


dump_blog.pl と xref_trackback.pl は aboutme2cocolog のパッケージに含んで配布する。aboutme2cocolog の記事に書いてあるように、config.ph をエディットして、make_templates.pl を実行すると、generated/ の下に、dump_blog.pl と xref_trackback.pl ができている。

トラックバックを送るのには特に認証が必要ないので、xref_trackback.pl はブログ名ぐらいしか config.ph のデータを使っていないが、XMLRPC を使う dump_blog.pl は config.ph の中の XMLRPC 関連のパスワード等を使っている。

perl dump_blog.pl --blogid=XXXX > tmp.blog_dump


…などとすると、tmp.blog_dump にフルバックアップが残される。まれにココログの側でエラーが出たことがあったが、何度かトライすると直ったのでエラー処理はそれほどやっていない。ダンプされた形式は、オリジナル形式だが、 XML として解釈できる(はず)。

なお、ダンプに含まれる情報は、ココログのバックアップの上位拡張ではなく、 IP 情報がなくなる。むしろ、他人のプライバシーである IP 情報は除くようにして、プライベートなオンラインストレージなどに置きやすくしてある。

いちおう内部では BASIC 認証にも対応しているので、BASIC 認証をしたい方は dump_blog.pl のソースを適宜いじってもらえばよい。

perl xref_trackback.pl tmp.blog_dump


…とすると、トラックバックを送りはじめる。

なお、トラックバックの通知をメールで受け取る設定をしていると大量のメールが届くので、このコマンドの前に、一連の作業が終るまで、その設定を解除しておいたほうがいいだろう。

これでトラックバックを送れるとは、つまり、ココログを経由してトラックバックを送っているのではなく、まるでトラックバックスパムを送るようにローカルからトラックバックのプロトコルを直接吐いて、トラックバックを送っている。

よって、これがスパムと判断されるのはもっともな話で、トラックバックを受けつけたあとスパムと判断したという警告を発されたり、そもそもトラックバックの受けつけを拒否し、403 Forbidden エラーを返してくることもある。スクリプトでは 403 エラーを返されたときは、3 分待って再送を行う。

当然時間がかかる。476 個のトラックバックを送るのに 4 日ほどかかった。トラックバックを送りきったあと、ココログの管理画面でスパムと判断されたものを「公開」する必要がある。これは手作業で行うが、それまでに 4 日かかったことを思えば、大した作業ではないだろう。orz

トラックバックが全部で何個送られるかを知るには次のようにする。

perl xref_trackback.pl --to=0 tmp.blog_dump


途中でエラーなどで止めてしまって、再開したい場合には範囲指定ができる。 100 番目のトラックバックから、200 番目のトラックバックを指定するときは次のようにする。(なお、↑はその範囲指定の最後を 0 にしただけである。)

perl xref_trackback.pl --from=100 --to=200 tmp.blog_dump


更新: 2012-01-07
初公開: 2012年01月07日 14:28:15
最新版: 2012年01月07日 14:32:44

2012-01-07 14:28:08 (JST) in JRF 作成ソフトウェア, Perl, ウェブログ・ココログ関連 | | コメント (0) | トラックバック (0)

JRF 作成ソフトウェア」カテゴリ内の最近の記事

Perl」カテゴリ内の最近の記事

ウェブログ・ココログ関連」カテゴリ内の最近の記事

批評や挨拶のためのネットコミュニティ

  • はてなブックマーク(って何?) このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク
  • Twitter (って何?)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/93568/53677075

トラックバックのポリシー

他サイトなどからこの記事に自薦された関連記事(トラックバック)はまだありません。
» JRF のソフトウェア Tips:ブログのバックアップ&「ひとこと」のクロスリファレンス (この記事)

コメント

コメントを書く



(メールアドレス形式)


※匿名投稿を許可しています。ゆるめのコメント管理のポリシーを持っています。この記事にまったく関係のないコメントはこのリンク先で受け付けています。
※暗号化パスワードを設定すれば、後に「削除」、すなわち JavaScript で非表示に設定できます。暗号解読者を気にしないならメールアドレスでもかまいません。この設定は平文のメールで管理者に届きます。
※コメントを書くために<b>ボールド</b>、<pre>詩文やソースコード</pre>、<a href="">リンク</a>、その他のHTMLタグが使えます。また、漢字[かんじ]でルビが、[google: キーワード] で検索指定が使えます。


ランダムことわざ: 七転び八起き。

今日のネットの話題: 今日もさんざんだった。保険どうしよう。