selenium + xvfb の web スクレイピング

最近、headless が有効だと正常なコンテンツを返さないページが増えてきたので仮想デスクトップを導入してみることにした。

xvfb のインストール

sudo apt-get install xvfb

xvfb のサービス登録と起動

/etc/systemd/system/xvfb.service を新規に作成

[Unit]
Description=XVFB virtual framebuffer X server
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/Xvfb :1 -screen 0 1024x768x16
ExecStop=/usr/bin/killall Xvfb
Restart=on-abort

[Install]
WantedBy=multi-user.target
sudo systemctl enable xvfb
sudo systemctl start xvfb

python スクリプトの修正

os.environ['DISPLAY'] = ':1'

options = Options()
#options.add_argument('--headless')
options.add_argument('--user-agent=hogehoge')
driver = webdriver.Chrome(options=options)

サイト運用

Posted by isurut