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は、半年ごとに、21.04、21.10といった塩梅でバージョンアップリリースを行っていますが、ここでは最新のLTSである20.04をダウンロードします。
私は、Ubuntu Server 20.04をダウンロードしました。
Ubuntuのインストール
次に、Ubuntuの仮想マシンを作成し、Ubuntuをインストールしていきます。Virtualization Stationの画面から「作成」を選択
適当にVM名を決めてあげて、先ほど保存したファイルをCDイメージとして指定、「VirtualMachines」フォルダの下に、VM名と同じフォルダを掘って、HDDイメージを保存するように設定すると、後々わかりやすいと思います。
今作成したVMの画面をクリックすると、webGUI上でコンソールが表示されますので、VMをスタートさせて、インストールを完了させてあげてください。
必要なパッケージのインストール
画面が無くて恐縮ですが、必要となるパッケージを次のコマンドでインストールしていきます。
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を使って定期実行することで実現しました。
スクレイピングと、定期実行の組み合わせはいろいろな形で応用ができると思います。
ぜひ皆さまも挑戦してみてください!
コメント
コメントを投稿