ウェブノウハウ

WEB KNOWHOW

Pythonでスクレイピング → WordPressサイトに掲載

8. スクレイピングが毎日定刻に自動で実行されるようにする

前回は情報掲載元サイトをスクレイピングしてWordPressサイトに渡すPythonコードをご紹介しました。

これで手動での実行はできるようになりました。
ただ、毎度毎度手動で実行するのは面倒ですよね。
今回はこのスクレイピングプログラムが毎日定刻に自動で実行されるようにしちゃいます。ここでは例として毎日深夜のAM1時に実行されるようにしてみます。
 

  1. まずスクレイピングプログラムが入っているEC2にSSH接続して、Cronに設定する諸々の情報を確認します。

    Pythonの場所を確認するコマンド

    which python
    

    出力されたパスをコピーしておきます。
    環境にもよりますが、こんな感じになってるんじゃないかと思います。

    ~/.pyenv/shims/python
    
  2. 次に環境変数を確認するコマンド
    printenv
    

    ずらずらっと変数情報が出てくると思います。
    その中の
    PATH=XXXXXXXXXXXXXXXXXXXX
    となってるところをまるっと1行コピーしておきます。
    例)

    PATH=/home/ec2-user/.pyenv/shims:/home/ec2-user/.pyenv/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
    
  3. 以上で情報はそろったので、Cronを設定します。
    crontab -e
    

    で設定ファイルを開き次のように記述します。

    CRON_TZ=Asia/Tokyo
    PATH=/home/ec2-user/.pyenv/shims:/home/ec2-user/.pyenv/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
    
    0 1 * * * ~/.pyenv/shims/python /var/www/app/app.py
    

    1行目は日本時間で設定することの宣言。
    2行目は2項でコピーしたPATHを貼り付けます。
    最後の行の「~/.pyenv/shims/python」のところは1項でコピーしたPythonの場所を貼り付けます。
    「/var/www/app/app.py」のところは、実行したいスクレイピングプログラムをフルパスで記述します。
     
    これを保存したら完了です。
    あとはほっとけば毎日AM1時にスクレイピングが実行され、勝手にWordPressのサイトに登録されていきます。
     
    さあ、いかがでしたでしょう?

    「外部のサイトの情報をPythonでスクレイピングして、自社のWordPressサイトに掲載する」
     
    外部のサイトの内容を勝手に掲載するのですから、掲載の仕方や情報の扱い方にはくれぐれも気をつけて、健全なサイトの育成に役立ててください。
     
    余談ですが、

    • あのサイトのスクレイピングがしたい
    • カテゴリー数が多くて1回だとサーバーの負荷が心配だ

    等、応用パターンの実装については実装代行お問い合わせからご相談ください。
     
    それでは。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!