日記投稿スクリプトを考え、実際に作ってみる
「記日記のバックアップを考える」の続きのようなメモ
自分が何を求めているのかをはっきりさせるためにいろいろ文章化してみようと思います。
当初作ろうとしていたRubyスクリプトは、ウェブスクレイピングした内容を定期的に投稿するというものでした。日々更新される複数のサイトを巡回して情報収集を行う場合、手動で閲覧して確認するには多くの時間が必要です。この労力を削減するために、要点のみを抽出することを試みました。この時、サイトの巡回とHTMLの解釈が必要になったため、mechanizeやhpricotモジュールを使用することで目的を達成することができました。これによって毎日の更新を確認することはもちろんのこと、時間単位での更新を追うことも可能になしました。この後、こうして集められた情報は自分以外の人にも必要にされていることが分かったため、Bloggerで公開することにしました。また、記事投稿の作業を簡単にするため、bloggerモジュールで自動化できないか調べてみました。その結果、bloggerモジュールが提供しているのは新規記事の投稿であることが分かりました。これでは日に何度も更新すると、不必要になった古いデータが残されたままになってしまいます。このため、記事を更新できるスクリプトを作成しようと考えました。
求めている機能について箇条書きでまとめてみます。
- 日付あるいはトピック指定での記事を投稿する
- サイトを巡回して、データを取得する(既に実現済み)
- 二時間おきに巡回と記事の更新を行う
実行環境については以下のように計画しています。
- herokuで実行します。また、ウェブcronで2時間に一回程度アクセスしてもらいます。
- herokuは無料の範囲内で運用します
- 1 dyno (1 cpu、10-50 requests/s)
- 更新周期が遅いため処理にもたついても運用できると楽観視しています。
こうして自分の求めるものをまとめていると次々に具体的にしなければならないことが浮かび上がってくる上、実は必要なかった機能やその逆が見えてきます。現在公開されている記事は何度も修正されたものとなっています。また、これからも変わっていくでしょう。
まだ理解していない、考えがまとまっていないことは
- エラー処理
- googleauthモジュールの使用。bloggerモジュールで使われているが実際どんな機能があるのか。
- 何が考慮されるべきか?
- herokuのメモリ量とバンド幅
作業手順
- Railsにのせる前に、単純なBloggerへの投稿スクリプトを作成する
- XMLを手で書いて投げるだけの簡単なスクリプトを作成する。投稿できるか、更新できるか。
- XMLを自動生成する(blog_id, 日付、タイトル、内容)
- サイト巡回スクリプトと投稿スクリプトを合わせる
- その後でRailsで実装する。Railsのトップページにアクセスするとスクリプトが実行されるようにする。
この記事を書きながら、他のモジュールやAPIについても調べてみました。具体的にはhatenaやlivedoorに関連するもので、どちらもAPIは公開されているためBlogger同様に操作できそうです。特に、hatenaの場合はhatenadialyモジュールがあり、日付指定での投稿が可能なようです。つまり、Bloggerではなくhatenaを利用してデータの公開を行うと目的を達成できるかもしれません。
コメント
コメントを投稿