目次

07 Python Selenium

Python と Seleniumの準備

Python インストール

Pythonダウンロード

重要

これを忘れると、Pathが通ってないのでpythonとかpipを打ってもコマンドがありませんになります。
※表示された画面の一番下に「Add Python 3.X to PATH」というチェックボックスがありますので、必ずチェックをしてください。

selenium インストール

pip install selenium
Collecting selenium
  Downloading selenium-3.141.0-py2.py3-none-any.whl (904 kB)
     |████████████████████████████████| 904 kB 3.3 MB/s
Collecting urllib3
  Downloading urllib3-1.26.3-py2.py3-none-any.whl (137 kB)
     |████████████████████████████████| 137 kB 6.8 MB/s
Installing collected packages: urllib3, selenium
Successfully installed selenium-3.141.0 urllib3-1.26.3

Chromeインストール

Centos

cat << EOM > /etc/yum.repos.d/google.chrome.repo
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
EOM
yum -y install google-chrome-stable

# google-chrome --version
Google Chrome 92.0.4515.159

Ubuntu

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/googlechrom-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/googlechrom-keyring.gpg
sudo apt update
sudo apt install google-chrome-stable

Chrome driver

下記からインストールしたChromeと同じバージョンのChrome driverを落としてくる
https://chromedriver.chromium.org/downloads

wget https://chromedriver.storage.googleapis.com/92.0.4515.107/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
mv chromedriver /usr/local/bin/chromedriver

# /usr/local/bin/chromedriver --version
ChromeDriver 92.0.4515.107 (87a818b10553a07434ea9e2b6dccf3cbe7895134-refs/branch-heads/4515@{#1634})

スクリプト部分

シンプルにページを開く

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

# WebDriverのインスタンスを作成します
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.binary_location = '/usr/bin/google-chrome'

# ChromeDriverのパスをwebdriver-managerで取得します
driver_path = ChromeDriverManager().install()
print(f"ChromeDriver is installed at: {driver_path}")

# Serviceインスタンスを作成します
global_service = Service(driver_path)
driver = webdriver.Chrome(service=global_service, options=options)



# 操作するページを開く
html=driver.get("https://c.fl8.jp")

# ページのHTMLコンテンツを取得
html = driver.page_source
print(html)

# 操作したブラウザを閉じる
driver.close()

ID/Pass入力

# ID/PASSを入力して、ボタンクリック
driver.find_element_by_name("USERID").clear()
driver.find_element_by_name("USERID").send_keys("hoge")
driver.find_element_by_name("PASSWORD").clear()
driver.find_element_by_name("PASSWORD").send_keys("hogepass")
driver.find_element_by_name("btn_login").click()
time.sleep(30)

chromedriver自動更新

https://yuki.world/python-selenium-chromedriver-auto-update/