質問: nokogiriを用いたwebスクレイピングを使ったサービスを作っています。 とりあえずスクレイピングした結果をテーブルに整形しほぼそのままview側で表示させるだけのものであるため、erbにそのままnokogiriを用いたrubyのコードを書いています。 しかしスクレイピング railsで調べるとview側でコードを全て書いているといったものは見当たりません。 require(ファイル、ライブラリ読み込み)をview内で行うことは醜いとか見た気もします。 正直、自分はこのままで問題無いのではと思っているのですが、仮にサービスとしてネット上にアップロードしたとしたら、この手法は何かまずいことがありますでしょうか。 またスクレイピングに限らずAPI等にhttpリクエストをview側で行うこともまずいでしょうか? いまいちCRUD処理を行うアプリ(railsの参考書に書いてそうなアプリ)以外でモデルを使うという考えが無い(手法をよく分かっていない)為、往往にして自分がスクレイピングやAPI用いたアプリケーションを作るとこのようなことが起きてしまいます。 弊害や懸念される事項とがございましたら教えていただけると有り難いです。 よろしくお願いします。
回答: > > 仮にサービスとしてネット上にアップロードしたとしたら、この手法は何かまずいことがありますでしょうか。 > > > むしろ、**やってはいけないレベルでまずい**設計です。というのも、ビューにスクレイピングコードを書いていると、**ビューにアクセスするたびにスクレイピングが行われる**ことになるため、ビューへのアクセスが増えればスクレイピング先への負荷も際限なく上がっていくことになるからです。 スクレイピングしたデータを表示するのなら、「スクレイピング自体はcronなどで定期的に回して、データをデータベースに保管する」、そして「ビューはデータベースから引っ張り出すだけ」のように構成するのが一般的です。