#author("2022-02-11T18:59:51+09:00","default:honma","honma") #author("2022-02-12T15:55:40+09:00","default:honma","honma") * ラズパイでSelenium [#n3800e79] ラズパイでSeleniumを使用した作業の効率化に関する話題があったので試してみた。 ** SDカードの準備 [#s61b4dc5] インストール後の最初の儀式。 [[Raspberry Pi Imager:https://www.raspberrypi.com/software/]]でサクッとSDに書き込んでセットアップを完了。~ 今回書き込んだOSは「Raspberry Pi OS Lite(32bit)」。デスクトップ機能は使用しないのでこれで十分。~ SSHでログインするのだが、Raspberry Pi Imagerの最新ではOSイメージの書き込み時に設定ができるようになっていた。~ インストール後の最初ログインでいつもの儀式を実施。 $ sudo apt update $ sudo apt upgrade $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye ** python環境 [#h780f30f] 今回はpython3で導入(Raspberry Pi OSの標準環境はまだpython3) 今回はpython3で導入(Raspberry Pi OSの標準環境はpython3) $ sudo apt install -y python3 python3-pip $ python3 -V $ python -V Python 3.9.2 ** selenium の導入 [#u1f963e7] selenium の導入(バージョン指定をせずに導入すると selenium 4 なので注意) $ pip3 install selenium $ pip3 list | grep selenium selenium 4.1.0 ** chromium-chromedriver の導入 [#c8cd12c5] chromium-chromedriver の導入 $ sudo apt install -y chromium-chromedriver $ dpkg -l | grep chromium ii chromium-browser 95.0.4638.78-rpt6 armhf Chromium web browser, open-source version of Chrome ii chromium-browser-l10n 95.0.4638.78-rpt6 all chromium-browser language packages ii chromium-chromedriver 95.0.4638.78-rpt6 armhf WebDriver driver for the Chromium Browser ii chromium-codecs-ffmpeg-extra 95.0.4638.78-rpt6 armhf Extra ffmpeg codecs for the Chromium Browser chromedriver のインストール先の確認 $ which chromedriver /usr/bin/chromedriver ** ソースコード(selenium_google.py) [#m8f0f446] ** ソースコード(selenium_by_google.py) [#m8f0f446] ネットでよく見かけるサンプルソースは selenium 3 だが、最新環境でセットアップすると selenium 4 となるため、一部書き換えが必要。 #highlight(python){{ import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys # ブラウザをヘッドレスで起動するためのオプション指定 options = Options() options.add_argument('-headless') driver = webdriver.Chrome(options=options) # Googleのトップ画面を開く driver.get('https://www.google.co.jp/') # 画面表示を最大5秒待つ driver.implicitly_wait(5) # 検索語を入力する input_element = driver.find_element(By.NAME, 'q') input_element.send_keys('Raspberry Pi' + Keys.RETURN) # 検索結果が出るまでちょっと待つ time.sleep(3) # スクリーンショットを保存する driver.save_screenshot('google.png') # ブラウザを終了する driver.close() }} #highlight(end) #ref(selenium_by_google.py) ** 実行 [#hc51d0cd] $ python selenium_google.py $ python selenium_by_google.py ※Raspberry PiはRaspberry Pi財団の登録商標です。 #htmlinsert(rpi3b+.html);