CentOS7 上部署 Headless Chrome + Selenium

Selenium 以后将不再支持 PhantomJS 。而 Headless Chrome 越来越被人们接受,俨然有成为事实标准之势。 在 CentOS 7 上部署 Headless Chrome + Selenium 好像比在桌面系统上麻烦一些。是以为记录。

安装 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.google.com/linux/linux_signing_key.pub

然后

$ sudo yum install google-chrome-stable

安装 chromedriver

在这个页面 下载与 Chrome 版本对应的 chromedriver , 解压后把 chromedriver 文件拷贝到 /opt/google/chrome/ 下(或其他你喜欢的路径)。 并确保其在 PATH 中可以找到,比如建个符号链接:

$ sudo ln -s /opt/google/chrome/chromedriver /usr/bin/

安装 Xvfb(不再需要了)

$ sudo yum install Xvfb 

安装字体库

$ sudo yum install libXfont xorg-x11-fonts*

如果缺少这一步,运行最后的示例代码时会出现如下错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed

安装 selenium

如果你使用了虚拟环境,则先进入虚拟环境:

$ source /path/to/python/venv/activate

如果未使用虚拟环境,则上步可省。

然后,安装 selenium:

$ pip install selenium

安装 pyvirtualdisplay(不再需要了)

$ pip install pyvirtualdisplay

测试一下

附件中是测试代码,可按如下命令运行。该段代码会输出网页的标题。

$ ./headless.py http://www.example.com

附1: 测试代码

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import sys

from selenium import webdriver


def get_title(url):
    chrome_options = webdriver.ChromeOptions()
    chrome_options.set_headless(True)
    browser = webdriver.Chrome(chrome_options=chrome_options)
    browser.get(url)
    print(browser.title)
    browser.quit()

def main(argv):
    n = int(argv[2]) if len(argv) > 2 else 1
    for i in range(n):
        get_title(argv[1])

if __name__ == '__main__':
    try:
        main(sys.argv)
    except KeyboardInterrupt:
        print ("Crtl+C Pressed. Shutting down.")

# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

附2: 旧版示例代码:

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import sys
import platform

from selenium import webdriver


def get_title(url):
    chrome_options = webdriver.ChromeOptions()
    chrome_options.set_headless(True)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值