過去記事を 鳴かせてみせよう botでね
Twitterをはじめましてその活用方法を探していましたら「ブログの過去記事をランダムに投稿する」というものがありました。
これをするには過去記事のタイトルとURLを抽出しなければならないようで、簡単な方法がないかと探しましたところ…
という記事を見つけました。……が、Rubyとかわからないので代替案を考えることにしました。
そこで参考にさせていただいたのがこちら。
こちらではGoogle Analyticsを利用していますが、わたしはブログのバックアップデータを利用してみました。
過去記事紹介ツイート文の下ごしらえ
この記事は、はてなブログ利用者を想定して書かれておりますが、はてなのようにタイトルやURLを簡単には取得できない他のブログサービスでも使えるでしょう。
バックアップデータの取得(はてなブログの場合)
まずはブログのバックアップデータを取得します。これははてなの場合ですが…
【 設定 → 詳細設定(タブ) → 「エクスポート」の項の「記事のバックアップと製本サービス」(クリック) → エクスポートしなおす → ダウンロード 】
これでバックアップデータが取得できました。
ここでgrepを使えばもっと簡単にできそうな気がするのですが、Rubyもgrepもwgetもなんのこっちゃわからないのでこんなんなりました~というのが以下の内容です。
編集しやすく表計算ソフトにコピペ
生成されたtxtファイルをメモ帳ではなくTeraPadなど人間が見やすいかたちで表示してくれるエディタソフトで開き、すべて選択(Ctrl+A)してコピー(Ctrl+C)してExcelなりCalcなりの表計算ソフトに貼り付け・ペースト(Ctrl+V)。
記事タイトルを抽出
(ここでは代表してExcelで説明していきますが、Calcでもボタン名など多少異なるところはありますけれども同様の操作で出来ました。)
表計算ソフトにコピペしてフィルタ機能を使いたいのですが、途中に空白セルがあると具合が悪いので…
【 Ctrl+G → セル選択(S) → 「空白セル(K)」にチェックしてOKボタン → 右クリックで「削除(D)」 → 上方向にシフト(U) 】
で空白セルを削除して詰めておきます。
不要な空白セルを一括で削除する:Excel VBAを学ぶならmoug
こうしておいてからフィルタ機能を使いまして(121ware.com:特定の値が入力されている行を抽出する方法)…
【 データ → フィルタ 】で出来た▼ボタンをクリックして…
【 「テキスト フィルタ(F)」 → 「指定の値で始まる(I)」 → (「オートフィルタ オプション」が開き「抽出条件の指定:」のところに)「TITLE:」と打ちOKボタン 】
※データ量が多いと「指定の値で始まる(I)」を選択したところでやや待つことになるか、場合によってはフリーズしてしまうかもしれません。心配な方は数回に分けて作業してあげるとよいでしょう。目安として32bitCPU3GHzメモリ3GBのわたしのパソコンを例にあげますと、約400記事で35,000行のデータにフィルタをかけると30秒ほど待つことになり、やや不安になります。後ほど使いますtwittbotに登録できるのは最大700ツイートですから、記事数の多い方は半分の350記事ぐらいを目安に作業されるとよいかもしれません。
こうしてフィルタリングされて抽出された「記事タイトル」のデータ列をすべて選択してSheet2にでも貼り付けましょう。
過去記事URLを抽出
そうしましたらまたSheet1に戻りまして、再び▽ボタンをクリックして…
【 テキスト フィルタ(F) → 「指定の値で始まる(I)」 → (抽出条件として)「BASENAME:」と打ちOKボタン 】
また表示されたデータをSheet2の先ほどコピペした横の列にでもコピペしましょう。
Sheet1にはもう用はありません。ここからはSheet2での作業となります。
一番上の「AUTHOR: 【あなたのはてなID】」の行はいらないので削除しちゃいましょう。
また「下書き」記事のある方は、その下書きエントリの行も削除しましょうね。
下書きエントリにまだタイトルをつけていない場合は「TITLE: 」の後ろが空欄になっておりますので見つけやすいのではないでしょうか……とはいっても、下書きのたくさんある方は大変ですよね?
下書きエントリがたくさんあり、なおかつその記事にはまだタイトルをつけていない方には朗報です。
次の操作をした後なら下書きエントリの削除作業が簡単にできます。
なのでここはすこし我慢していただいて、もやもやを抱えたまま次の操作を行ってください。
「TITLE: 」(←コロンの後ろに半角スペースがあります)を置換で一括削除しちゃいましょう。
【 Ctrl+F(「検索と選択」 → 置換(R)でもいいです) → 置換(P)[タブ] → 検索する文字列(N)に「TITLE: 」と打ち「置換後の文字列(E)」にはなにも書かずに空白のままにして「すべて置換(A)」 】
これで「TITLE: 」が削除されます。
引き続き今度は「BASENAME: 」(←コロンの後ろに半角スペースがあります)と「http://【あなたのブログのURL】/entry/」とを一括で置換しちゃいましょう。
【 検索する文字列(N)に「BASENAME: 」と打ち「置換後の文字列(E)」に「http://【あなたのブログのURL】/entry/」と打ち「すべて置換(A)」 】
これで過去記事のURLとなりました。
タイトルのない下書きエントリの一括削除
そして…お待たせしました。下書きエントリにタイトルをつけていなかった方。
ここまできますとタイトルをつけていなかった下書きエントリのセルが空白になっていますでしょ?
ですからまたまたここでオートフィルタを利用しまして…
【 データ → フィルタ → ▼ボタンをクリック → テキスト フィルタ(F) → 「指定の値に等しい(E)」 → (抽出条件などなにも打ちこまず空白のままで)OKボタン 】
すると空白セルの行だけが抽出されましたでしょ?そしたらその行ごと削除しちゃいましょうね。
もしかしたら削除した後にフィルタの解除が必要となるかもしれませんが、その時はあわてずフィルタを解除してください。
過去記事紹介ツイートに文を加えたいときは…
これはツイート文の先頭になにか文言を加えたい方にだけ必要な操作となりますが、過去記事紹介ツイート文の先頭になにか言葉を入れたい方は、先ほど抽出してコピペしましたSheet2の「記事タイトル」の前の列のセルに(前に列がなければ挿入でつくってね)言葉を打ちこみ、それを(ドラッグするなりして)すべての行にコピーしましょう。
過去記事の日付とツイートされる日付にはギャップがありますので、過去記事紹介ツイートでは「これは過去記事の紹介ですよぉ~」ということをわかりやすくするためにツイート文の先頭に「過去記事紹介」といったような言葉を加えることが一般的なようです。
半角スペースが残っていたら…
「TITLE: 」と「BASENAME: 」を置換するとき、「コロンの後ろに半角スペースがあります」と赤字で記しておきましたが、これを見落とし、「記事タイトル」と「記事URL」の先頭に半角スペースが残ってしまっている場合は、こちらのサイトを参考にTRIM関数を使って半角スペースを削っておきましょう。
抽出したデータを1文にする
この項では「過去記事紹介」などの言葉を加えるとして話をすすめます。
次に「過去記事紹介」といった言葉と、これまでに抽出してきた記事タイトルやURLを1文にします(121ware.com:2つのセルに入力されている文字列を結合する方法)。が、わたしの場合は1文に結合しなくてもtwittbotにコピペしたときにデータが隣接していれば1行を1文として認識してくれましたので、どうやらこの操作はしてもしなくてもよさそうです。
ですから、なぜか?なんでか??うまくいかず1文にしなければならなそうな方や、1文にして文字数やバランスをみたいといった方は参考にしていただければよろしいかとおもいます。
現在Sheet2には…A列に「過去記事紹介」、B列に「記事タイトル」、C列に「http://【あなたのブログのURL】/entry/」、D列に「記事URL」の4列が並んでいるとおもいますので、5列目のE列に「=A1&B1&C1&D1」と半角で打ち込みEnter。そしてそのセルの関数をすべての行にコピー(左クリックでドラッグぅ~ポンッ。はいできあがり!)
これでE列に1文に結合されたツイート文が生成されましたでしょ?
「記事タイトル」と「ブログURL」の間にスペースや言葉を入れたい方や順番を変えたい方などいらっしゃるかとおもいますが、このあたりの方法を利用しましてうまいことやってください。
自動化で あなたにかわり bot鳴く
1文に結合されたE列をコピーしてください(1文にする操作をしなかった方はA~D列をコピーしてください)。
ここまでで表計算ソフトでの作業は終了です。
あともう一息ですよ。
twittbotに過去記事紹介ツイート文の登録
ここからはtwittbotを使いますのでユーザー登録されていない方や操作方法に不案内な方はこちらの「手順②twittbotの設定」をご参考にされてはいかがでしょうか?
ユーザー登録してログイン後、「つぶやき登録へ」→「複数行入力」で先ほどコピーしたツイート文をペーストしまして「つぶやき追加」ボタンをクリック、ポンッ。
ツイートのタイミングなどは「時間指定」や「詳細設定」でご指定ください。
掬われて救われますように
おつかれさまでした。
これで登録した過去記事を紹介するツイートが自動で投稿されるようになりました。
あなたのすてきな過去記事がすくわれますように。