shuzo-kino.hateblo.jp
の続き。
今度は、よくあるログインページを経由してトップページに遷移する方法について。
実際のところ
実行環境
- Raspberry PI 4B 8Gbyte
- Ubuntu 20.10
- python3.8
- Chromium 88.0.4324.150 snap
- ChromeDriver 88.0.4324.150
スクリプト
ログインページ"LOGINPAGE"に
- name「userid」がついたユーザー名フォーム
- name「userpass」がついたパスワードフォーム
- class「btn-login」がついたログインボタン
があるという想定で、これに入力しトップページ"TOPPAGE"に遷移するスクリプトは以下の通り。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import time from selenium import webdriver from selenium.webdriver.chrome.options import Options # ブラウザの場所は絶対PATHとして指定 CHROME_BIN = "/usr/bin/chromium-browser" CHROME_DRIVER = "/usr/lib/chromium-browser/chromedriver" # LogIn Info USER_ID = 'YOURID' USER_PASS = 'YOURPASS' # TargetURL LOGINPAGE = 'YOURLOGINSPAGE' TOPPAGE = 'YOURTOPPAGE' # 実行オプション options = Options() options.binary_location = CHROME_BIN options.add_argument("--remote-debugging-port=9696") # sshでやるなら options.add_argument('--headless') # 実行インスタンス print("start\r\n") driver = webdriver.Chrome(CHROME_DRIVER, options=options) time.sleep(3) # URLに接続 print("Connect URL...\r\n") driver.get(LOGINPAGE) # 読み込み用の待機。性能に自信があるとかでない限り、やった方が無難。 time.sleep(3) # ID/PASSを入力 print("Enter ID/PASS\r\n") id = driver.find_element_by_name("userid") id.send_keys(USER_ID) password = driver.find_element_by_name("userpass") password.send_keys(USER_PASS) time.sleep(1) # ログインボタンをクリック print("Click Button\r\n") login_button = driver.find_element_by_class_name('btn-login') login_button.click() # サイト内で他の画面に遷移させたければ print("NextPage....\r\n") driver.get(TOPPAGE) time.sleep(5) # 結果を変数に格納 html = driver.page_source # 何かしら実行。今回はプリントするだけ print(html) # インスタンスを片付ける。整理整頓は基本。 driver.quit()