楽天ランキングで1位を取った画像を商品ページにアップしている店舗さんは多いですよね。
楽天リアルタイムランキングは15分置きに更新されているんで、1位をとったとしてもキャプチャを取るのって大変です。
ついついキャプチャとりそこねることがあります。
そこで、楽天リアルタイムランキングを15分置きに自動でキャプチャ取れる方法を模索。
成功したのでメモしておきます。
納得いかない部分がありましたので下記記事にて改変しました。
phantomjsとcasperjsのインストール
まずは、phantomjsとcasperjsをインストールします。
MACはターミナルからコマンドでインストールできましたが、WindowsでNode.jsインストールしてからnpmコマンドインストールが失敗したので、各サイトからダウンロードしてPATHを通すことにしました。
MAC
MACは下記ブログなどを参考にすれば大丈夫ではないでしょうか。
Macにcasperjsをインストール
MACはいろんなサイトでコマンドが掲載されていて失敗しなかったので詳細は省きます。
Windows
Windowsは手こずったので詳細記載しておきます。Windows10環境での説明になります。
下記ブログを参考にしました。
Windowsでお手軽にCasperJSを試す
Windowsにcasperjsをインストール
最初casperjsの安定版をインストールしなかったのでエラーが出ていました。
上記URLを参考にしないと、安定版ダウンロード方法がわかりませんでした。
[phantomjs]
phantomjsページからダウンロードします。
[casperjs]
casperjsのアーカイブからダウンロードします。
解凍したら、解凍フォルダごとCドライブ直下に移動し、フォルダ名をphantomjs、casperjsに変更しました。
次に、PATHを通します。
PATHを通すってWindows独特の観念で苦手です。ここがよくわかっていなくてなかなかうまくいきませんでした。
環境変数設定画面を開きます。
開き方は2通りあります。
・Cortana(コルタナ)の検索窓に[環境変数]と入力して、見つかった[環境変数を編集する]をクリックする。
・[windowsキー+r→sysdm.cplと入力]→[詳細設定タブ]→[環境変数]
システム環境変数内にある[Path]を選択した状態で[編集]をクリックします。
新規で下記を追加します。
C:\phantomjs\bin
C:\casperjs\bin
これでPathが通りました。
コマンドプロンプトでインストールされていることを確認します。
コマンドは下記の通りです。
phantomjs -v casperjs --version
バージョンが表示され、無事インストールされたことが確認できました。
自動キャプチャ
次にキャプチャするために必要なファイルを作成していきます。
下記ページをまるまる使わせてもらいました。
PhantomJS と CasperJS で複数ページを一括キャプチャする
デスクトップにtestフォルダを作成して必要なファイルを保存しておきました。
参考にしたブログではcapture.jsというファイル名でしたが、私の環境ではrakutenRank.jsに変更しています。
また、rakutenRank.batというファイル内には下記コマンドを記述しています。
このファイルはタスクスケジューラで指定するのに使います。
cd C:\Users\ユーザー名\Desktop\test casperjs rakutenRank.js exit
cronみたいなものを設定
MAC
MACではcronを設定します。
設定方法は下記を参考にしました。
Terminal: Macで定期的にプログラムを実行する
Macでcronの使い方を学ぶ
ターミナルで下記コマンドをたたいてcron設定しました。
vim /tmp/crontab :wq crontab -e a //←INSERTモード PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs 0/15 * * * * cd rakutenRank.jsを格納しているフォルダ && /usr/local/bin/casperjs rakutenRank.js esc //←INSERTモード終了 :wq
Windows
Windowsでは、タスクスケジューラを使用します。
Cortana(コルタナ)の検索窓に[タスク]と入力して、見つかった[タスク スケジューラ]をクリックします。
[タスクスケジューラ ライブラリ]を右クリック→[タスクの作成]をクリックします。
[全般]タブの名前は任意名を記載します。
ユーザーログオンしていないときも動いてほしかったので、[ユーザーがログオンしているかどうかにかかわらず実行する]を選択しました。
[トリガー]タブに詳細の日時を記載します。楽天のリアルタイムランキングは15分おきに更新されるので、繰り返し間隔を[15分間]に設定します。
[操作]タブにrakutenRank.batを指定します。
これで15分おきに楽天ランキングのキャプチャを取ることに成功しました。
お疲れ様です。