スポンサーリンク

【SeleniumBasic】Yahooメールへのログイン方法をわかりやすく説明する(Chrome)

VBAスクレイピング

こんにちは。blueです。

今回はSeleniumBasic-Chromeを用いたYahooメールへのログイン方法について説明します。

業務やプライベートにおいてサイトでのログインは日常的に行われていると思います。

この記事を読んでいただければ

  • Webサイトを表示させる
  • Webサイトでのログイン操作(ID,パスワード入力,クリック)ができる

ようになりますのでぜひ読んでいってください。
なお「細かい説明とかは良いからコードを教えてほしい」という方は下のボタンから飛んでください。


VBAを使ったものではありませんが、Seleniumを勉強する為の基本的な書籍です。ブラウザやキー操作の基本的なコマンドは共通していますのでコードを書く際の参考になります。

スポンサーリンク

前提

このサイトではSelenium-Chrome-VBAを用いたスクレイピングについて紹介します。

スクレイピングをするにはSeleniumChrome Driver,NET.Frameworkのインストール、VBAでの参照設定が必要です。

方法については以下を参照ください。

またSeleniumで使うコードについては以下をご参照ください。

今回のゴール

YahooサイトにてログインID,パスワードを入力してYahooメールを見れるようにする

今回のフロー

今回のフローは以下です。

  1. ChromeをたちあげYahooサイトにアクセスする
  2. Yahooサイトの[メール]をクリックする
  3. ログイン画面にてユーザーネームを入力し、次へを押す
  4. パスワードを入力し、次へを押す

以下で詳しく説明します。

全コード

全コードは以下になります。なおユーザーIDパスワード自分のものをご使用ください

Sub sample()
    Dim Driver As New Selenium.WebDriver
    Driver.Start "chrome"
    Driver.Get "https://www.yahoo.co.jp/"

    Driver.FindElementByCss("#StatusMail > a > dl").Click
    
    Driver.FindElementByCss("#username").SendKeys ("ユーザーID")
    
    Driver.FindElementByCss("#btnNext").Click
    
    Driver.FindElementByCss("#passwd").SendKeys ("パスワード")
    
    Driver.FindElementByCss("#btnSubmit").Click
    
    Stop
    
End Sub

コードの説明

ChromeをたちあげてYahooサイトにアクセスする

SeleniumのWebDriverを立ち上げてサイトを表示する際は以下のコードを入力します。

なおサイト名は目的に応じて変えることが可能です。

Dim Driver As New Selenium.WebDriver
    Driver.Start "chrome"
    Driver.Get "https://www.yahoo.co.jp/"

Yahooサイトの[メール]をクリックする

Yahooサイトのメールをクリックするにはメールをクリックする部分の要素を取得しClickメソッドを使用します。

要素を取得するにはChromeのデベロッパーツールを使用します。

右上の3つボタンをクリック→[その他のツール]→[デベロッパーツール]をクリック

クリックすると拡大します

出てきた画面の左上の矢印ボタンをクリック

クリックすると拡大します

実際にクリックするメールの部分にカーソルを合わせます。なお要素には文字や画像、枠など多くのものが存在する為、クリックする際に必要な枠を選択します。

クリックすると拡大します

選択した要素の部分で右クリック→[Copy]→[Copy selector]をクリック

クリックすると拡大します

VBAにて以下のコードを入力。セレクターには先ほどコピーした内容を貼り付けます

Driver.FindElementByCss("セレクター").Click

指定した要素に対してClickメソッドを実行することによってクリックすることができます。

以下がVBAに入力した画面です。なおプログラムが終了すると自動的にSeleniumは終了し、スクレイピングの画面が消えてしまいます。確認の際はStopを入力して止まるようにしてください

クリックすると拡大します

ログイン画面が表示されます。

クリックすると拡大します

ログイン画面にてユーザーネームを入力し、次へを押す

ログイン画面にてユーザー名を入力するにはユーザー名の部分の要素を取得し、Sendkeysメソッドを用いてテキストを入力します

先ほどと同様に 右上の3つボタンをクリック→[その他のツール]→[デベロッパーツール]をクリック

クリックすると拡大します

先ほどと同様にユーザー名の部分の要素を取得します。

出てきた画面の左上の矢印ボタンをクリック入力する部分をクリック→ 選択した要素の部分で右クリック→[Copy]→[Copy selector]をクリック

クリックすると拡大します

VBAにて以下のコードを入力。セレクターには先ほどコピーした内容を貼り付けます

Driver.FindElementByCss("セレクター").SendKeys ("ユーザーID")

指定した要素に対してSendkeysメソッドを実行することによってカッコ内のテキストを入力できます

VBAに入力した画面がこちらです。同様にStopで止めておきます。

クリックすると拡大します

テキストが入力できました。

次は下の「次へ」ボタンを入力することになりますが Yahooサイトの[メール]をクリックする方法と同じ方法で要素を取得し、コードを入力します。

具体的には以下のコードになります。

Driver.FindElementByCss("#btnNext").Click

パスワード画面が表示されます。

パスワードを入力し、次へを押す

パスワードの入力もユーザー名の入力と同じです

同様にパスワードの部分の要素を取得したうえでSendkeysメソッドを用いてパスワードを入力します。

合わせてクリックメソッドを用意します。

 Driver.FindElementByCss("#passwd").SendKeys ("パスワード名")
    
 Driver.FindElementByCss("#btnSubmit").Click
    

Yahooメール画面が無事に表示されました。

クリックすると拡大します

ここでのまとめ

スクレイピングにおいてクリック操作テキスト入力は基本中の基本です。

サイトにアクセスするだけであればボタン操作とテキスト操作で可能ですのでわずかなコードの理解で操作可能です。

これができるだけでかなりの自動化は実感できますのでまずは自分がアクセスしたいサイトで試してみることをお勧めします。

VBAを使ったものではありませんが、Seleniumを勉強する為の基本的な書籍です。ブラウザやキー操作の基本的なコマンドは共通していますのでコードを書く際の参考になります。

↓困ったときは以下が頼りになります。私も利用させてもらってます😊。

TVCMで話題のココナラ

Selenium-VBAでのWebスクレイピングに関する記事はこちらをどうぞ

Web-APIを用いたデータ取得に関する記事はこちらをどうぞ

【VBA】Web APIを使ってデータを取得する(OpenWeatherMap)1
【VBA】Web APIを使って時間別天気予報を取得する(気象庁API)
【VBA】Web APIを使ってLINE通知を行う(LINE Notify)1

コメント

タイトルとURLをコピーしました