5
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでWebサイトに自動ログイン

Posted at

#はじめに
pythonを使用してWebサイトに自動ログインするプログラムを作ってみました。
seleniumを使用。
geckodriverを使用してFireFoxを制御します。

複数のサイトにログインすることを想定して作成してます。
1サイト目は、ログイン後にボタン押下が必要なサイトを想定。対象の検索してクリック。
2サイト目は新規タブで開いてログイン。

なお、投稿者は、pythonを勉強して日が浅いです。
Qiitaの投稿も初です。技術レベルは低いです。

#環境

OS 言語 ブラウザ
windows10 python3.7 FireFox

#事前準備
###driverの入手
ドライバーを下記から入手する。
https://github.com/mozilla/geckodriver/releases

###入手したdriver(geckodriver.exe)をpathが通っている場所に配置
PCの環境設定とかする。省略。

###seleniumuのインストール
pip install selenium

#コーディング


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

browser = webdriver.Firefox()
type(browser)

#Webサイト1 ユーザー名・パスワード入力欄はtextBoxでid有り
browser.get('Webサイト1')
usr_name_el = browser.find_element_by_id('対象のID')
usr_name_el.send_keys('ユーザー名')
usr_pass_el = browser.find_element_by_id('対象のID')
usr_pass_el.send_keys('パスワード')
usr_pass_el.submit()
#ログイン後、あるボタンを押してトップページ遷移させたいサイトのため下記コード。 aタグでクラス名有り
WebDriverWait(browser, 30).until(EC.presence_of_element_located((By.CLASS_NAME, "対象のクラス名")))
link_el = browser.find_element_by_class_name("対象のクラス名")
type(link_el)
link_el.click()

#Webサイト2 
#ユーザー名入力欄はtextBoxでid有り、パスワードはidとclassが無いのでxpathで検索
browser.execute_script( 'window.open()' ) #新規タブ開く
browser.switch_to.window(browser.window_handles[-1]) #新規タブに移動
browser.get('Webサイト2')
usr_name_el = browser.find_element_by_id('対象のID')
usr_name_el.send_keys('ユーザー名')
usr_pass_el = browser.find_element_by_xpath('対象のパス。開発者ツールからコピーするのが楽')
usr_pass_el.send_keys('パスワード')
usr_pass_el.submit()

#参考にしたもの
要素の見つけ方
https://selenium-python.readthedocs.io/locating-elements.html

#おわりに
プログラムでブラウザの制御が思ったより簡単に出来たので、
仕事で毎日ログインするようなサイトの自動化をしてみようと思います。

 

5
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?