スズメノートホーム技術・知識CasperJSをパラメータ付きで実行しevaluteに引数を設定する、PHPから叩いてWebAPI化CasperJSをパラメータ付きで実行しevaluteに引数を設定する、PHPから叩いてWebAPI化2018-08-31TwitterFacebookはてブLINECasperJSの実践的な使い方として、「引数にURLを設定して起動することで、引数に合わせて様々なサイトをクロールする」だとか、「引数にIDとPASSを設定し、起動毎にログインするアカウントを変える」といった使い方があります。WebAPI的な使い方をしたい場合などにおいて必須となる手法なので、共有しておきます。ついでにPHPファイルから叩くことで、WebAPIを簡単に作る方法についても記載しておきます。(ただし、PHPが本当にWebAPIに適しているのか?という点については、今回は特に触れません)パラメータを付けてCasperJSを起動する起動方法自体は想像付くかと思います。param2簡単ですね、スペース空けてパラメータ入力するだけです。複数ある場合は、スペースを空けて複数設定すればOKです。オプション付ける場合も変わりません。param2パラメータの受け取り方は、以下になります。casper.cli.args[2];casper.cli.argsでパラメータの配列が取得できます。evaluteに引数を設定する微妙にはまったのがこれ。「パラメータで設定した情報をinputに設定してpost」みたいなことをやろうとしたら、上手くevaluteに値が渡らないというケースに出くわしました。});}おわかりいただけただろうか。わかりにくいですが、evaluteの第二引数に設定する。evaluteのfunctionの引数に、evaluteの第二引数で設定した変数のキーを設定する。これで、evalute内に変数の受け渡しが出来ます。PHPからCasperJSを起動execで叩くだけです。param2');?>大変シンプルですが、これで一応WebAPIによるスクレイピングや、自動ログインからの自動投稿などが実現出来ます。当たり前ですが、実運用を行う際には何らかの認証をかけます。悪用も可能なアレなので、アレをアレする際は気を付けてください。