2017-11-27 8 views
0

ログインするための資格情報を使用するボットを構築しようとしています。ページ上でいくつかのjavascript要素をアクティブにしています。プロダクションでログインしてセッションを維持できるHTTPクライアント

私が使用しているサイトには、使用できるAPIがなく、サイト自体が非常に重いです。

Teslaのようなものを使用して、WatirとCapybaraと同じようにユーザーとしてログインしてブラウザとやりとりできますが、プロダクション環境で使用できますか?

私はElixirには新しいですが、私はinitでログインするように長い実行中のGenServerを使用すると思います。ほとんどのユーザーは2FAを使用しますが、これはユーザーのログイン時に許可されますが、ユーザーがログインしてからの日数を実行する場合は、認証セッション/トークンを保存する必要があります。

私はテストフレームワークであるWatirを使用してボットを正常に構築しました。それはブラウザを開き、物理的にログインします。そして、ボットをうまく処理します。しかし、ヘッドレスドライバに切り替えると、JSは正しく実行されません。

このようなものを製造することは可能ですか?

+0

"ヘッドレスドライバJSはロードされません。"私はこれに従っていません。 chromedriverとgeckodriverはどちらもヘッドレスをサポートしています。これはJSをうまくロードし、どちらもSelenium/Watirコードで動作します。 – titusfortner

+0

ヘッドレスドライバーは何ですか? Phantomよりも少ないものは、フルブラウザで意図されたようにJSを実行することができないでしょう。 – evilSnobu

+0

私はPhantomJSを使用していましたが、JSがどのように実行されていたかに起因して、その時間の約80%を作業することしかできませんでした。だから私はWatirに切り替えました。 (一時的な解決策として私はこのアプリが生産に入るかどうか議論しながら) –

答えて

0

これを行うには、HoundまたはWallabyを使用できます。彼らはかなり似ています。私はWallabyがCapybaraの構文に少し近いと思う。それは少し日付がついていますが、ここにはa discussion on the difference between Wallaby and Houndです。

これまで私はハウンドを使用していましたが、うまくいきました。 PhantomJSの代わりにChromiumを使用しなければならなかったのは、あなたと同じように、私が訪れていたページが重いため、PhantomJSでは機能しなかったものがあるからです。私は何も起こっていないことを確認してからヘッドレスに切り替えました。

プロダクションでの実行に関して、私はローカルでしかボットを実行しませんでしたが、ローカルで動作させてからEC2インスタンスに同じセットアップでデプロイすることはできませんでした。

関連する問題