かっちゃんの日記

初めまして!自営業(タイヤの卸売)をやってます。新規事業としてアプリ開発に興味がありプログラミングを勉強中です。日々の学びを発信していきます。よろしくお願いします。HTML/CSS/haml/sass/Ruby/Ruby on rails/Javascript/Jquery/Git/GitHub/データベースとSQL/統合テスト/AWS

スクレイピングした情報をDBに入れる方法

MovieReviewというサイトを使って実装します。

 

大きな流れ

  1. MovieReviewで表示されている映画の個別ページのリンクを取得する
  2. 取得した個別ページのリンク1つ1つに対してスクレイピングをする

 

前提① 映画の情報を扱うために今回はProductモデルを作ります。

rails g model product

・migrationファイルにtitle,image_urlのカラム追加

・rake db:migrate

 

前提② sequel proにデータを入れるのでアプリケーション内にファイルを作って実行する。app/model/scraping.rb このファイル作成

 

知識◎ クラスメソッドが2つ必要

クラスメソッドmovie_urls

表示されている20件分の映画の個別ページのリンクURLを取得して、そのリンクをクラスメソッドget_productへ渡す処理をする。

クラスメソッドget_product

引数として渡された個別ページのリンクURLを使って「作品名」と「作品画像のURL」をスクレイピングし、それらをproductsテーブルに保存する処理を行う。

 

上記の流れ1、2の実装はこんな感じ

 

f:id:chkc:20190724185419p:plain

 

ターミナルでrails cを立ち上げ、クラスメソッドmovie_urlsを実行する

 

f:id:chkc:20190724185910j:plain

 

データベースに入ってます^^

f:id:chkc:20190724190100p:plain

 

以上です^^