新しいこと、枯れたこと問わずサムザップ大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。前回記事からの続きです。最低限の機械学習の知識を手に入れるため勉強中。前回はPhantomJSとSeleniumを使ってコマンドラインから指定したWebサイトの画面キャプチャを撮りました。今回はログインが必要なサイトの画面キャプチャを撮ってみます。手順としては↑以前やった内容に近いですが、セッション維持とHTMLパースにに関してRequestsモジュールとBeautifulSoupモジュールを使用していましたが、今回Seleniumだけで実現できるためどちらも外しています。ログインサイトにアクセスフォームにIDとパスワードをセットして送信ログイン後HTMLからマイページURLを取得ログイン後のURLの画面をキャプチャログインが必要なサイトは本書のサンプル通りコチラのサイトにアクセスします。先に今回のサンプルコードから紹介します。このコードを実行すると以下のような画面キャプチャがローカルに保存されます。処理内容についてはソースコード読めば何となく分かるかと思いますので、以下気になったことを羅列します。Seleniumは凄いSeleniumを使うとDOM取得がとても便利です。ID要素取得driver.find_element_by_id("user")このようにしてID要素の取得が出来ます。driver.find_element_by_id("user")textbox.clear()textbox.send_keys(USER)IDが"user"のテキストボックを取得して、send_keysメソッドで引数の値をキーボードで打ち込む操作をすることが可能です。form")form.submit()フォーム操作も簡単です。※このform変数はselenium.webdriver.remote.webelement.WebElementという型として取得されていますその他色んなことができそうです。リファレンスをしっかり読もう。最後にログインサイトの画面キャプチャを通して感じたのは、Seleniumが非常に面白く、高機能だなということです。今回たまたまPhantomJSを使いましたが、ChromeやFirefoxなどのブラウザを使うこともできそうなので、そちらも追々。枯れた技術かもしれないけど、畑違いで自分がやったこと無いことは楽しいです。00:00ログインサイト先の画面キャプチャをしてみるTweet読者になるボタンを押して貰えるととてもがんばれます。大庭俊介(bao_bao)渋谷のUnityエンジニア。スマホゲーム作って生活しています。設計、組み込み、演出一通りを自分1人で完結して作るのが得意です。よろしければTwitterフォローお願いします。(@ohbashunsuke)株式会社サムザップでUnityエンジニアとしてスマホゲーム作っています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。