ユーザ用ツール

サイト用ツール


ヘッドレス環境構築

RockyLinux 8 にヘッドレス環境を準備する

RockyLinux

OS: Rocky Linux 8.9

  (Minumumインストール)

  ※ Xwindowsは導入していない

App: Python 3.8.17

   google-chrome 122.0.6238.2

   Selenium 4.16.0

インストール

google-chrome

# vi /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

# dnf install google-chrome

python3/pip

# dnf install python38.x86_64 python38-pip.noarch

# dnf module list | grep python

libselinux-python    2.8             common                                   Python 2 bindings for libselinux                                                                                
python27             2.7 [d]         common [d]                               Python programming language, version 2.7                                                                        
python36             3.6 [d]         build, common [d]                        Python programming language, version 3.6                                                                        
python38             3.8 [d][e]      build, common [d]                        Python programming language, version 3.8                                                                        
python39             3.9 [d]         build, common [d]                        Python programming language, version 3.9                                                                        

python3.8が[e] enableとなっている。

# python3 -V

Python 3.8.17

/usr/bin/python を、python3.8としたい場合は、

# update-alternatives –config python

にて選択する。

chromedriver/selenium

# google-chrome –version

Google Chrome 122.0.6238.2 dev

# pip3 install chromedriver_binary==122.*

# pip3 install selenium

google-chromeは更新頻度が高いので、update時はバージョンをチェックすること。

pipでのインストール一覧コマンドは、

# pip3 list

簡易確認

XWindowを導入していない為、ブラウザが動作している経過は確認できない

手間ではあるが、スクリーンショット(画像)を保存して、画像をscp転送して確認する

ハマった時には、画像確認を容易にする為に、WEBサーバーやsambaなどを経由して確認したほうが楽かも・・・

$ vi test.py
<codedoc code:python>
from selenium import webdriver
import chromedriver_binary

options = webdriver.ChromeOptions()
options.add_argument('–headless')
options.add_argument('–no-sandbox')
driver = webdriver.Chrome(options=options)
driver.set_window_size(1200, 720)

driver.get(“https://www.google.co.jp/”)

# スクショ 保存
driver.save_screenshot('screenshot01.png')
driver.quit()
</codedoc>
$ python3 ./test.py

実行後のscreenshot01.pngを確認する



chromeが起動している様子を画像として確認出来たが、文字化けしている。

日本語フォントのインストール

# dnf install google-noto-sans-cjk-ttc-fonts.noarch google-noto-serif-cjk-ttc-fonts.noarch google-noto-cjk-fonts-common.noarch

# fc-cache -fv

$ python3 ./test.py



文字化けは解消された

最終確認

$ vi test2.py
<codedoc code:python>
from selenium import webdriver
import chromedriver_binary
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_argument('–headless')
options.add_argument('–no-sandbox')
driver = webdriver.Chrome(options=options)
driver.set_window_size(1200, 720)

driver.get(“https://www.google.co.jp/”)

# スクショ 保存
driver.save_screenshot('screenshot01.png')

query = driver.find_element(By.NAME, “q”)
query.send_keys(“test123”)
driver.save_screenshot('screenshot02.png')
query.send_keys(Keys.RETURN)

driver.save_screenshot('screenshot03.png')
driver.quit()
</codedoc>
$ $ python3 ./test.py






ヘッドレス環境構築.txt · 最終更新: by admin