今回はChromeDriverでパスワードが必要なページへのアクセスし、例として「エキスパ」のログインからCSVダウンロードのボタンを押してダウンロードするところまでの記事です。
この記事は
【お仕事自動化】pythonでHPからcsvをDLして、データフレーム化する①【準備編】
の続きで、実際にChromeDriverを起動して、各HTML要素の操作の仕方について書いています。
上記の記事でまずはChromeDriverの起動までできたかと思います。
まずは、復習としてChromeDriverの起動を行います
1 2 3 4 5 6 7 |
# クロムを起動 path = os.getcwd() # pythonプログラムが保管されているフォルダパスを取得 Exefile= path + "\\chromedriver.exe" driver = webdriver.Chrome(executable_path = Exefile) driver.implicitly_wait(3) |
次はログインIDとパスワードを変数として格納します。
1 2 |
USER = "ゆーざーあいでぃー" PASS = "ぱすわーど" |
ログインするサイトへアクセスします。
1 2 3 4 5 |
# ログインページするサイトへアクセス url_login = "https://exp-t.jp/account/login_operator/expa" driver.get(url_login) time.sleep(3) print("ログインページにアクセスしました") |
それぞれの入力フォームにログインIDとパスワードを入力します。
1 2 3 4 5 6 7 8 |
# テキストボックス入力 elem = driver.find_element_by_id('MasterOperatorOperatorCode') elem.clear() elem.send_keys(USER) elem = driver.find_element_by_id('MasterOperatorOperatorPassword') elem.clear() elem.send_keys(PASS) print('フォームを送信') |
ここではidを指定して入力するフォームを特定してUSERとPASSを入力しています。
このidの特定の仕方は、Chromeでログインしたいページを開いてF12を押してデベロッパーツールを開きます。

次に下画面の赤丸部分を押して、入力したいボックスを選びます。

するとその部分のHTML要素が分かります。

今回はこのid要素で入力する場所を特定しています。

その他に
- find_element_by_id
- find_element_by_name
- find_element_by_xpath
- find_element_by_link_text
- find_element_by_partial_link_text
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
を指定して、操作をしたいHTML要素を特定する事ができます。詳しくはこちら
どうにもうまくいかないときは、xpathを指定するのが一番やりやすいです。
xpathを特定するのは、知りたい要素を右クリックして
Copy→Copy Xpath
等で指定するのが良いと思います。

入力を完了させた後は、ログインボタンを押します。
このボタンを押すというのもHTML要素を特定して、ボタンを押すという操作になります。(ここでは”name”を指定してボタンを押しています。)
1 2 3 4 5 6 |
# 入力したデータをクリック time.sleep(3) frm = driver.find_element_by_name('exec') time.sleep(3) frm.click() print("情報を入力してログインボタンを押しました") |
コマンドは
.click()
を使用しています。
また、入力の合間合間でHTMLの読み込みの時間があるため、
time.sleep(3) # 3秒操作を待つ
で、プログラムが先に動いてしまわないようにしています。
その後は、手動で操作する事をイメージして、クリックや入力を繰り返している流れです。
ログインが成功した後は、ダウンロードボタンのあるページに直接飛んで良いのでこのようなボタンがあるページに飛んで

1 2 3 4 5 |
# ウェブサイトへのアクセスアクセス例 url="https://hogehoge" time.sleep(1) driver.get(url) print(url,":アクセス完了") |
としてcsvダウンロードのボタンのidやname,XPath等を特定してクリックするという操作は変わりません。
1 2 3 4 5 6 |
# csvダウンロードボタンを押すプログラム例 time.sleep(3) frm = driver.find_element_by_name('csvdl') time.sleep(3) frm.click() print("ボタンをクリックしてCSVのダウンロードを開始する") |
こんな感じ。
次回は、ダウンロードしたcsvをPythonにデータフレームとして取り込む方法を書きます。よろしく。
続きはこちら
![]() |
![]() |
---|
コメントを残す