Python Web ペ-ジ自動操作
Web ペ-ジ自動操作概要
Web ペ-ジの自動操作を行ないたいと思います。
自動操作とはブラウザを操作するように実際に Web ペ-ジに対する操作を指示してクロ-リングします。
具体的に言うとフォ-ムへの入力などを行なうこと等が主題となります。
ここではログインが必要な Web サイトの例として Cookpad の MYフォルダ内のレシピを取得します。
自分の設定したフォルダに入るだけなのですがかなり困難をともないます。
Web ペ-ジの自動操作準備
Cookpad
へ行ってまず MY フォルダを作成します。
画面右上の「MY フォルダ」をクリックすると
登録画面が表示されますので、
「クックパッドユ-ザ-登録(無料)」
をクリックします。
自分のメ-ルアドレスを記入し
「利用規約に同意して送信する」
をクリックします。
自分のメ-ルアドレスに
「クックパッド本登録のご案内」
がきますので、リンクをクリックして手続きを進めてください。
パスワ-ドはここで設定します。
手続きが完了すると
「クックパッドユーザー登録完了のご案内」
メ-ルが来て完了です。
Cookpad HOME 画面 から
MY フォルダ
に入ってください。
認証後うまく入れることを確認したら、再度 cookpad HOME 画面に戻り、
適当にレシピを選択、気に入ったものを
「レシピを保存」ロゴ
をクリックして「MY フォルダ」に入れます。
再度 MY フォルダに入いり今入れたレシピが入っていれば完了です。
秘密にすべき認証情報の取扱
Web ペ-ジの自動操作を行なおうとすると認証のための秘密のキ-が必要になることがあります。
スクリプトに秘密のキ-を直接書かないようにすることが大切です。
通常は、これらのキ-は環境変数に書いておいてこれをスクリプトから読込むようにします。
Python の os モジュール os.environ を使用すると環境変数の値を読込むことができます。
ただし、スクリプトの実行時に環境変数を渡すためには
forego または python-dotenv モジュ-ル
が必要です。
forego は
$ sudo forego start
で起動させておくことが必要です。
どうも forego は負荷の高い処理のようです。
よって必要時に端末から
$ forego run python3 sc_env_set.py
のようにしてみなさん起動させているようです。
そんな理由から、私は python-dotenv の方が使い易いと思います。
python-dotenv インスト-ル
python-dotenv モジュ-ルをインスト-ルします。
Ubuntu ディスクトップ画面から端末画面を開きます。
yamada@ubuntu-20:~$
sudo pip3 install python-dotenv
とします。
$ pip3 show python-dotenv
とし Location で示されるディレクトリ
Location: /usr/local/lib/python3.8/dist-packages
にパッケージがインストールされていることを確認します。
.env ファイルの設置ディレクトリ
.env ファイルはどこに置くべきでしょうか?
作成した Python スクリプトから dotenv.load_dotenv() 関数を呼び出すと、
そのスクリプトファイルがあるディレクトリを起点に、
.env ファイルが見つかるまで親ディレクトリを遡りながら検索します。
なので、あるスクリプトファイルで使用する .env ファイルは、
そのスクリプトファイルのルートディレクトリに配置 しておけば、
まずロードに失敗することはありません。
今回は
/home/yamada/public_html/
の直下に .env ファイルからの環境変数読出ファイル sc_env_read.py
を作成しますのでファイル構成は
/home/yamada/public_html/sc_env_read.py
/home/yamada/.env
のようにします。
.env ファイル作成
.env ファイルを作成します。
Ubuntu ディスクトップ画面から端末画面を開き
nano エディタを開き .env ファイルを新規作成します。
yamada@ubuntu-20:~$ nano .env
COOKPAD_LOGIN=yamada_8@yahoo.co.jp
COOKPAD_PASSWORD=y1234567
.env ファイルにはキーと値のペアを書いておくようにします。
今回は1組のみ作成します。
値の設定には " " はあってもなくてもかまいません。
COOKPAD_PASSWORD="y1234567"
のような書き方もあります。
新規作成が終わったら
Ctrl + o
Enter
Ctrl + x
で終了します。
yamada@ubuntu-20:~$ ls -la
で .env の存在を確認します。
隠しファイルなので ls -la コマンドでないと確認できません。
次に、
yamada@ubuntu-20:~$ cat .env
で中身を確認します。
ここまでで、やっと .env ファイルからの環境変数読出ファイル sc_env_read.py を作成する準備ができました。
引き続き、この読出ファイル sc_env_read.py を作成していきます。