LoginSignup
3

More than 3 years have passed since last update.

さくらサーバーで定期的なPythonスクレイピングをするためcron設定方法。

Last updated at Posted at 2019-12-06

はじめに

定期的にスクレイピングするにはcron設定をしなければならないらしく、検索すると古い記事であまりにも分かりにくかったので独自の方法を記載しました。

スクレイピングについては前回書いてますのでスクレイピングをしたい人は下のリンクからみてください
https://qiita.com/kei_kei_kei/items/730ba09e7830d5c00a1c

では実際に設定しましょう

ターミナルを開き、さくらサーバーにログインします。

下記のコマンドを実行。

ssh アカウント名@初期ドメイン(xxx.sakura.ne.jp)

パスワードを聞かれるのでドメインIDを打つときに必要なパスワードを入力。
%が出てきたらログインできました。
https___qiita-image-store.s3.amazonaws.com_0_154299_b9ec4b06-666d-51a7-3afe-fa0c3d5b728d.jpeg

さくらサーバーのpythonのバージョンは古い

pythonのバージョンが古いのでバージョンあげようと皆必死になるのですが、めんどくさいのと
pathも変えなきゃいけないのでさらにめんどくさいなのでそのままで。

しかし!そのまま動かすとエラーが、

Traceback (most recent call last):
  File "train_mnist.py", line 4, in <module>
    import requests
ImportError: No module named requests

ローカルはPython3。さくらはPython2。

ローカルで

pip install (外部モジュール名)

をしてインストールして動いたと思います。

さくらにも外部モジュールのインストールが必要。

さくらのバージョン低くてpip使えません。

気づいた方はpipでインストールしようとすると思いますが、できないのです。

なので必要なモジュールは下記のようにインストールしてください

python -m install requests

今回はrequestsをインストールしましたが、
Beautiful Soupをインストールしたい方は下記のコマンド

python -m install beautifulsoup4

こんな感じで必要なモジュールをインストールしていきます。

今回使う外部モジュールをインストールできたらターミナルでの作業は終わり。

さくらサーバーの設定をしていきます。

契約中のさくらサーバーにログインします

スクリーンショット 2019-12-07 0.26.30.png

アプリケーション設定にある⓵のcron設定のリンクをクリックします

スクリーンショット 2019-12-07 0.27.38.png

⓵を押すと⓶の新規項目の追加リンクが出てくる画面に進みます。
そのまま⓶の新規項目追加を押します。

cronをどのくらいの頻度動かすのか設定していきます。

スクリーンショット 2019-12-07 0.31.52.png

⓵には
cd /home/自分のアカウント名/www/ファイルのあるディレクトリ;<半角スペース>/usr/local/bin/python<半角スペース>対象ファイル.py

⓶には
説明にある通り何ヶ月の何日の何時、何分毎に動かしたいのか記述します。
画像では2分おきに実行させています。

入力し終わったら⓷の送信ボタンをクリック

送信を押すとcron設定画面に戻るので環境変数を設定

スクリーンショット 2019-12-07 0.43.39.png
ここには

環境変数設定:PYTHONPATH
環境変数の値:home/アカウント名/lib/python

上記を入力して追加をクリック

登録完了!!

実際に動いてるか確認しましょう。

さくらのcron設定で1> /dev/nullを入力していない方にはメールが届きます。
メールにはエラーがある場合はエラー文が書いてあるので確認。
もし、エラーが出ていればエラー通りに解決していきます。

最後に要確認

さくらのPythonのデフォルトエンコーディングはasciiです。
なので、日本語を出したい方はデフォルトを変更してください。
デフォルトエンコーディングを確認したい方は最初に戻りさくらをターミナルを開きます。
ログインしてpythonと打ち込み下記のコマンドを実行してください。

% python


>>>import sys
>>>print sys.getdefaultencoding()

デフォルトエンコーディングが確認できます。
今回作成したのはInt型だけが必要だったので変更せずにすみましたが、必要なかたはトライしてみてください。

cron設定で作ったサイトはこちら

完成サイト:https://compadre.matrix.jp/aisekiya/
スクリーンショット 2019-12-05 16.19.32.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3