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)