amazon.co.jp、kakaku.comのランキング情報を定期的に自動取得!

amazon.co.jpのランキング情報と、kakaku.comのランキング情報を自動で取得するためのスクリプトについて、前回までにメモをしました。


 
それでは今回は、定期的に、自動的にランキング情報を取得できるようにしていきます。

定期的、自動ランキング情報取得の仕組みを構築

まずは、自動実行用のプラットフォームを準備

私、家ではQNAPのTS-251Dを使用しているのですが、こちらのNASにはVirtualization Stationという機能があり、NASの上で仮想マシンを動作させることができます。NASはどうせ一日中電源つけっぱなしなので、NASの上で自動実行用のプラットフォームを作っていきます。
※Virtualization Stationはインストール済みなものとしております。まだインストールされてない方は、最初にVirtualization Stationをインストールしてください。
普通にTS-251Dを使用すると、メモリが最大でも4GBですので、仮想マシンを動作させる場合は、8GBに換装することをお勧めします。

UbuntuのISOイメージ入手


こちらのページからUbuntuのISOインストールイメージを入手します。
Ubuntuは、半年ごとに、21.04、21.10といった塩梅でバージョンアップリリースを行っていますが、ここでは最新のLTSである20.04をダウンロードします。
私は、Ubuntu Server 20.04をダウンロードしました。


ダウンロードが完了したら、isoファイルはNASの、フォルダに保存します。


私の場合は「VirtualMachines」フォルダ下に「ISO」というフォルダを掘ってそこに保存しています。

Ubuntuのインストール

次に、Ubuntuの仮想マシンを作成し、Ubuntuをインストールしていきます。
Virtualization Stationの画面から「作成」を選択


適当にVM名を決めてあげて、先ほど保存したファイルをCDイメージとして指定、「VirtualMachines」フォルダの下に、VM名と同じフォルダを掘って、HDDイメージを保存するように設定すると、後々わかりやすいと思います。


今作成したVMの画面をクリックすると、webGUI上でコンソールが表示されますので、VMをスタートさせて、インストールを完了させてあげてください。



Ubuntuのインストールが完了した後は、必要なパッケージなどをインストールしていきます。

必要なパッケージのインストール

画面が無くて恐縮ですが、必要となるパッケージを次のコマンドでインストールしていきます。
sudo -s 
# 横着ですが、何度もsudoするのは面倒ですので、rootユーザーのコンソールにしてしまいます。

#Ubuntu 20.04では、python2を標準で使用するようになっているので、python3に切り替え
rm /usr/bin/python
ln -s /usr/bin/python3 /usr/bin/python3

apt-get install pip
pip install urllib3
pip install bs4
pip install pandas
pip install lxml

これでパッケージのインストールは完了

スクリプトをcronに登録

Linuxには定期的にコマンドを実行する仕組みがあります。cronといいます。
このcronにスクリプトを実行してもらうためには、/etc/crontabに記述すればOKです。
私の場合は、こんな感じで3つのスクリプトを毎日23時30分ごろに実行するように設定しました。


さて、これですべての準備が完了です。あとは定期的に実行されるのを待つだけ。

ついでに、VMを自動起動する設定に

その前にもう一つ、qlockerといったランサムウェアが4月の終わりごろに暗躍していましたが、その影響もありファームウェアの自動更新を有効にされている方が多いかと思います。ファームウェアが自動更新されると「再起動後に仮想マシンが起動していなかった」ということがありそうですので、自動ファームアップが実行された後も仮想マシンが自動的に起動するように、自動起動設定を有効にしておきます。
自動起動設定は「Virtualization Stationの仮想マシンの設定項目」内「その他」の中にあります。


前の状態を保持し、自動再開してもらえば問題ないでしょう。

実行結果


こんな感じでファイルができてます。
ばっちりですね!

まとめ

今回は、前回までにメモしたAmazon.co.jpのランキング情報取得スクリプトと、kakaku.comのランキング情報取得スクリプトを使用して、自動的にランキング情報を収集する仕組みを作ってみました。
QNAP TS-251D上のVirtualization StationでUbuntu 20.04を走らせ、さらにその上でcronを使って定期実行することで実現しました。

スクレイピングと、定期実行の組み合わせはいろいろな形で応用ができると思います。
ぜひ皆さまも挑戦してみてください!

コメント

このブログの人気の投稿

VPNでNASにリモートアクセス!QTS5.0でWireGuardを試す

レトロゲームステーションに!QNAP TS-251D

NASに保存したファイルを便利に検索する方法