selenium with chrome headless on centos 7

chrome 在 17年4月开始支持 headless 模式(v59), phantomjs 有很大可能性不再维护,最近趁着有个爬虫的需求,来探索一下chrome headless模式在centos系统上的可行性。

关于chrome安装

yum install  \
    ipa-gothic-fonts \
    xorg-x11-fonts-100dpi \
    xorg-x11-fonts-75dpi \
    xorg-x11-utils \
    xorg-x11-fonts-cyrillic \
    xorg-x11-fonts-Type1 \
    xorg-x11-fonts-misc -y

yum install xorg-x11-server-Xvfb
echo "[google-chrome]" >> /etc/yum.repos.d/google-chrome.repo
echo "name=google-chrome" >> /etc/yum.repos.d/google-chrome.repo
echo "baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch" >> /etc/yum.repos.d/google-chrome.repo
echo "enabled=1" >> /etc/yum.repos.d/google-chrome.repo
echo "gpgcheck=1" >> /etc/yum.repos.d/google-chrome.repo
echo "gpgkey=https://dl.google.com/linux/linux_signing_key.pub" >> /etc/yum.repos.d/google-chrome.repo
yum -y install google-chrome-stable

xvfb-run --server-args='-screen 0, 1024x768x16' google-chrome --headless --disable-gpu -remote-debugging-port=9222

遇到的问题

chromedriver 版本问题

目前 chromedriver 最新版本2.31,但是该版本与centos7的glibc不兼容,所以降级选择 2.30

selenium 配置

主要测试了下面的配置

options.binary_location = '/opt/google/chrome/chrome'
options.add_argument('headless')
options.add_argument('disable-gpu')
# options.add_argument('window-size=1200x600')
self.driver = webdriver.Chrome(chrome_options=options)

refs

So, you want to run Chrome headless. Running Selenium with the new headless Chrome (3)Web自动化之Headless Chrome开发工具库 - 堆栈HeapStack - SegmentFault 初见 Chrome Headless Browser - 不发光的博客