#はじめに
定期的にスクレイピングするにはcron設定をしなければならないらしく、検索すると古い記事であまりにも分かりにくかったので独自の方法を記載しました。
スクレイピングについては前回書いてますのでスクレイピングをしたい人は下のリンクからみてください
https://qiita.com/kei_kei_kei/items/730ba09e7830d5c00a1c
#では実際に設定しましょう
ターミナルを開き、さくらサーバーにログインします。
下記のコマンドを実行。
ssh アカウント名@初期ドメイン(xxx.sakura.ne.jp)
パスワードを聞かれるのでドメインIDを打つときに必要なパスワードを入力。
%
が出てきたらログインできました。
##さくらサーバーの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
こんな感じで必要なモジュールをインストールしていきます。
今回使う外部モジュールをインストールできたらターミナルでの作業は終わり。
#さくらサーバーの設定をしていきます。
###アプリケーション設定にある⓵のcron設定のリンクをクリックします
⓵を押すと⓶の新規項目の追加リンクが出てくる画面に進みます。
そのまま⓶の新規項目追加を押します。
###cronをどのくらいの頻度動かすのか設定していきます。
⓵には
cd /home/自分のアカウント名/www/ファイルのあるディレクトリ;<半角スペース>/usr/local/bin/python<半角スペース>対象ファイル.py
⓶には
説明にある通り何ヶ月の何日の何時、何分毎に動かしたいのか記述します。
画像では2分おきに実行させています。
入力し終わったら⓷の送信ボタンをクリック
###送信を押すとcron設定画面に戻るので環境変数を設定
ここには
環境変数設定:PYTHONPATH
環境変数の値:home/アカウント名/lib/python
上記を入力して追加をクリック
###登録完了!!
#実際に動いてるか確認しましょう。
さくらのcron設定で1> /dev/null
を入力していない方にはメールが届きます。
メールにはエラーがある場合はエラー文が書いてあるので確認。
もし、エラーが出ていればエラー通りに解決していきます。
#最後に要確認
さくらのPythonのデフォルトエンコーディングはasciiです。
なので、日本語を出したい方はデフォルトを変更してください。
デフォルトエンコーディングを確認したい方は最初に戻りさくらをターミナルを開きます。
ログインしてpython
と打ち込み下記のコマンドを実行してください。
% python
>>>import sys
>>>print sys.getdefaultencoding()
デフォルトエンコーディングが確認できます。
今回作成したのはInt型だけが必要だったので変更せずにすみましたが、必要なかたはトライしてみてください。
##cron設定で作ったサイトはこちら
完成サイト:https://compadre.matrix.jp/aisekiya/