こんにちわ、Python大好きオオバです。

前回記事からの続きです。
最低限の機械学習の知識を手に入れるため勉強中。

前回はPhantomJSとSeleniumを使ってコマンドラインから指定したWebサイトの画面キャプチャを撮りました。

今回はログインが必要なサイトの画面キャプチャを撮ってみます。

Pythonでログインサイト先のHTMLをパースする

手順としては↑以前やった内容に近いですが、セッション維持とHTMLパースにに関してRequestsモジュールBeautifulSoupモジュールを使用していましたが、今回Seleniumだけで実現できるためどちらも外しています。

  1. ログインサイトにアクセス
  2. フォームにIDとパスワードをセットして送信
  3. ログイン後HTMLからマイページURLを取得
  4. ログイン後のURLの画面をキャプチャ

ログインが必要なサイトは本書のサンプル通りコチラのサイトにアクセスします。

先に今回のサンプルコードから紹介します。
ログインサイトの画面キャプチャサンプル · GitHub

このコードを実行すると以下のような画面キャプチャがローカルに保存されます。

ログインサイト先の画面キャプチャをしてみる_0

処理内容についてはソースコード読めば何となく分かるかと思いますので、以下気になったことを羅列します。

Seleniumは凄い

Seleniumを使うとDOM取得がとても便利です。

ID要素取得

driver.find_element_by_id("user")  

このようにしてID要素の取得が出来ます。

キーボード操作

textbox = driver.find_element_by_id("user")  
textbox.clear()  
textbox.send_keys(USER)  

IDが"user"のテキストボックを取得して、send_keysメソッドで引数の値をキーボードで打ち込む操作をすることが可能です。

send_keys(special)-Python

フォーム操作

form = driver.find_element_by_css_selector("#loginForm form")  
form.submit()  

フォーム操作も簡単です。

Seleniumクイックリファレンス

その他色んなことができそうです。リファレンスをしっかり読もう。

最後に

ログインサイトの画面キャプチャを通して感じたのは、Seleniumが非常に面白く、高機能だなということです。今回たまたまPhantomJSを使いましたが、ChromeやFirefoxなどのブラウザを使うこともできそうなので、そちらも追々。
枯れた技術かもしれないけど、畑違いで自分がやったこと無いことは楽しいです。

期間限定 最大95%オフセール
効率UPメガバンドル開催中!最大95%オフ!!!
期間 : 11月1日午後15時59分まで
オススメ記事
検証環境