2016年になりました。

明けましておめでとうございます。

久しぶりの更新で大変申し訳ない気持ちでいっぱいです。
前回の更新から約2ヶ月経ってしまいました。
 
新年早々言い訳になりますが、11月と12月は仕事が忙しく なかなか子育てアプリの開発に専念できませんでした。
そして、なんだかんだしている間に年末年始に突入してしまい、今に至っております。
 
いろんな方のアプリ開発ブログを見ていると、すごく短期間でアプリを作られているので、私ももっと頑張らないとダメですね・・・。

今年は子育て情報アプリのリリースを目指して、
より一層頑張りますので
応援よろしくお願いしまーす。

子育て情報アプリを作れるように vol13 ~放浪する~

前回までで、

  1. サイトをクロールして
  2. 子育て情報を収集し、
  3. タグを自動生成して
  4. データベースに保存する

ところまで終わりました。

次は
このクローラーをherokuというサービスを利用して
定期的に実行させようと思い、
herokuの使い方について調べていました。

すると、問題発覚…

  • 無料版はデータベースに10000レコードまで保存できる
  • herokuではファイルを保存できない
    (アイドル状態になった時に全部消える)

私のクローラーは実行する度に、
タグを自動生成させるためのファイル(parenting-tfidf.json)を更新しますので、
ファイルが消えてしまうと問題です。
また、クローラーで収集したデータはどんどんデータベースにためていくので、すぐに足りなくなりそうです。

うーん、どうしよう。
無知すぎた笑

で、この後も色々と調べたり悩んだ結果

AWSを有料で使う

事に決めました。
(どれくらいお金かかるんだろう…)

ただし、
お金がかかるので、すぐには使わずに
まずはローカルでサーバを立てて
運用し、クローラーの完成度を高めてから
AWSを使う事にします。

ということで、
今回からローカルサーバでの運用について書いて行こうと思います。
 

今回の目標

  1. Vagrantを使う

1. Vagrantを使う

(1) まずは情報収集

クローラーをサーバで、運用する方法については
クロ本の最後のChapterに書いてあります。
もはや、私の中のバイブルですね。

あと、ドットインストールというサイトでVagrant入門というのがありますので、
そちらも視聴しました。
dotinstall.com

Vagrant仮想マシンを管理するためのツールです。これがあるとすごく便利だそうです。
仮想マシンは別途必要なので無料のVirtualBoxを使っていきます。

ちなみにVagrantの意味を調べたところ「放浪する」という意味でした。
何でだろう笑

(2) インストール

特に難しいことはありません。
VagrantVirtualBoxも公式サイトから
Mac版をダウンロードしてきてインストールするだけでした。

(3) OSの準備

続いて、
VirtualBoxにインストールするOSを用意します。
http://www.vagrantbox.esというサイトで
色んなOSのテンプレートが配布されていますのでこちらを使っていきます。

ただし注意点があります。
このサイトは公式サイトではありません。
分かりやすく言うと
テンプレートにウィルスを埋め込まれている可能性を否定できないという事です。
なので、利用する場合は自己責任でお願いします。
今回は、
クロ本に書いてあるテンプレートなら安全だと思われるので、自己責任で使ってみたいと思います。

(4) 仮想マシンをセットアップする

まずは上記(3)で説明したOSのテンプレートを登録します。

$ vagrant box add centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box

続いて、仮想マシンを初期化します。

$ mkdir centos65-parenting-crawler
$ cd centos65-parenting-crawler
$ vagrant init centos65

初期化する前に仮想マシンの設定を格納するディレクトリを作ります。
今回は、作成した子育て情報クローラーを動かすためのサーバなので、
centos65-parenting-crawler
と付けます。(長い・・・)

次は起動します。

$ vagrant up

次は接続

$ vagrant ssh

ここまでで、無事に仮想マシンへの接続まで終わりました。

ちなみに、
Vagrantには他にもコマンドがありますので一覧にしておきます。

コマンド 説明
vagrant box add [name] [url] boxの登録
vagrant init [name] 仮想マシンの初期化
vagrant status 仮想マシンの状態を確認
vagrant up 仮想マシンの起動
vagrant halt 仮想マシンの終了
vagrant suspend 仮想マシンのスリープ
vagrant resume 仮想マシンの復帰
vagrant reload 仮想マシンの再起動
vagrant destroy 仮想マシンの削除
vagrant ssh 仮想マシンに接続
vagrant box remove [name] boxの削除

 
 
 
今回はこの辺で。
はじめは、
Vagrantなんてよく分からない」
と作業するのをためらってましたが、
やってみたらそんなでもなかったです。
何事もとりあえずやってみるのが大事ですね。
 
次回は
クローラーを動かすために必要なOSの設定を行っていきます。

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

子育て情報アプリを作れるように vol12 ~タグを自動生成する その2~

前回の続きになります。

前回の記事投稿後、
@dkfjさんよりご指導頂きました。ありがとうございます。

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

また、テキストマイニングについて色々と調べたところ、
 
 
奥が深い
 
 
どころか
 
 
奥が深すぎて底が見えない
 
 
ことが分かりました・・・。

これらを理解すれば理想のタグが作れるかもしれません。
とても興味深い分野ではあるので、
一度書籍を購入して読んでみようと思います。
その際は、記事を書きたいと思います。
※気になった書籍は最後に書き残しておきます。
 
で、子育て情報アプリのタグについては
とりあえず名詞に形容詞を付けるようにだけ修正します笑

アルゴリズムは単純です。

「名詞」の一つ前の品詞が「形容詞」の場合は  
 文字列を連結させて一つの単語とする  

です。

あとは、余計なタグはブラックリストに登録して
ひたすら取り除くことにします。

f:id:tumiki_jp:20151026123410p:plainf:id:tumiki_jp:20151026123416p:plain

悔しいですが、とりあえずこれで様子見します。
 
<後で頑張って読む書籍>

今回はこの辺で。