centos6中安装chrome与chrome-driver,中间走了很多弯路,遇到很多坑,现将详细步骤总结如下。参考博客链接:https://blog.csdn.net/u013849486/article/details/79466359

首先是在centos6里安装,在网上搜了很多资料,主要分为在线安装和离线安装,在线安装需要找到合适的源,但是Google官网的源非常容易导致失败,有兴趣的可以找其他的源。

可以参考这个网站,https://www.tecmint.com/install-google-chrome-on-redhat-centos-fedora-linux/

我采用的是离线安装,首先介绍在centos上安装

一、下载chrome,chrome-driver

可以通过下面网站下载各类机型不同版本的chrom,我用的是64.0.3282.119_x86_64.rpm

下载地址:https://www.landiannews.com/archives/36966.html

对应的chrome-driver可以通过这个网站下载,http://npm.taobao.org/mirrors/chromedriver/

二、安装

1,安装chrome是,一定要使用yum安装,因为chrome需要安装几个依赖包,

 yum localinstall -y 64.0.3282.119_x86_64.rpm 

2,解压chromedriver_linux64.zip,

3,启动chrome,一定要创建一个非root用户执行chrome的启动命令,猜测可能是chrome做了限制!!!

 [lv@node105 lib]$ google-chrome &
[1] 5930
[lv@node105 lib]$
(google-chrome:5930): Gtk-WARNING **: cannot open display: 出现这个提示就说明chrome启动了

三、调试

采用Python执行脚本比较方便,要安装selenium。执行脚本的时候也要使用非root用户!!

 首先安装 selenium
pip install selenium 如果没有pip,要安装pip,centos7下使用yum安装pip 首先安装epel扩展源:
yum -y install epel-release 更新完成之后,就可安装pip:
yum -y install python-pip 安装完成之后清除cache:
yum clean all

测试脚本如下;test.py,打印出网站的title,就说明成功了: Maven Repository: Search/Browse/Explore。 如果报PATH异常,可以通过chown使非root用户拥有chrome-driver的权限!

 #conding=utf-8
from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options,executable_path='/sqy/local/lib/chromedriver') driver.get("http://mvnrepository.com/")
time.sleep(3) print(driver.title) driver.quit()

有很多人推荐使用Xvfb,也可以但是比较复杂,需要安装很多东西,使用Python脚本启动chrome

 安装pyvirtualdisplay
pip install pyvirtualdisplay yum install Xvfb yum install xorg-x11-fonts* yum install libXfont yum install xorg-x11-server-Xvfb

Python脚本

 from pyvirtualdisplay import Display

 from selenium import webdriver

 display = Display(visible=, size=(, ))

 display.start()

 chrome_opt = webdriver.ChromeOptions()

 chrome_opt.add_argument('--headless')

 chrome_opt.add_argument('--disable-gpu')

 #chrome_opt.add_argument('--ignore-certificate-errors')

 try:

         a=webdriver.Chrome(chrome_options=chrome_opt,executable_path='/sqy/local/lib/chromedriver')

 except Exception as e:

         print(e)

         #display.stop()

 else:

         a.get("http://www.baidu.com")

         print(a.title)

         a.quit()    

我在这里都是使用了chrome-driver的绝对路径(/sqy/local/lib/chromedriver),也可以通过配置chrome-driver的环境变量,这个大家可以自行决定!

四、拓展

docker环境安装chrome,chrome-driver,并制作docker镜像,编写dockerfile

因为安装chrome需要使用yum安装所以基础镜像最好有yum功能,不然自己安装yum会很麻烦,从docker官方仓库pull最新的centos6的基础镜像就带有yum功能,安装步骤和上面的一样,同样也要创建非root用户启动chrome,执行脚本的时候也要使用非root用户!!!

在创建docker容器的时候必须注意:docker run -d --restart always --privileged --name chrom_test -v /usr:/sqy -ti cent_chrome:1.0      命令里必须有privileged,给容器的root用户赋予绝对的root权限!  参考连接:容器权限

最后奉献上我自己的dockerfile,参考链接:dockerfile构建镜像

 FROM centos:centos7
#我自己使用的是我本地的centos的基础镜像,大家可以改成docker官方仓库,centos:7 #maintainer 作者 MAINTAINER sqy #add 把包添加到容器的指定目录,如果是tar包会自动解压 ADD 64.0..119_x86_64.rpm /usr/local/lib ADD chromedriver /usr/local/lib #workdir 相当于cd到这个目录 WORKDIR /usr/local/lib RUN yum localinstall -y 64.0..119_x86_64.rpm

----------------------------------------------------若有不正之处,欢迎指正,不胜感激!!!!!

在centos,docker中安装HeadlessChrome的更多相关文章

  1. 在centos docker中安装nvidia驱动

    因为计算需要用到GPU加速, 今天尝试在centos 机器的Docker里安装了GTX980驱动, 记录一下详细安装过程. 首先安装Docker和镜像: sudo yum install docker ...

  2. Docker - 在CentOS 7中安装Docker

    1-确认系统信息 # cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) # uname -a Linux CentOS-7 3. ...

  3. 在docker中安装mysql

    #!/bin/sh # 安装docker # 在docker中安装mysql # 解决了docker容器中无法输入中文的问题 ##########################安装docker # ...

  4. docker中安装宝塔面板

    我的电脑是win10,安装的virtualbox其上装的ubutun14,ubutun也安装了docker,今天我补充一个完整的操作流程.怎么在docker中安装宝塔面板?先打个岔,这些命令总是记不住 ...

  5. CentOS 7中安装和配置Promethues

    Prometheus 是什么? Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prome ...

  6. docker中安装宝塔面板教程

    本人电脑是win10,安装的virtualbox,装的centos7.2,在centos7.2装了docker,这个比较简单,网上一大堆教程,今天说一下装好了docker之后怎么在docker中安装面 ...

  7. CentOS 6 中安装Node.js 4.0 版本或以上

    如果想在CentOS 6 中安装Node.js >4.0,如果通过以往的方式安装: wget http://nodejs.org/dist/v4.0.0/node-v4.0.0.tar.gz t ...

  8. 在CentOS 7中安装nginx服务器

    简要地介绍一下,如何在CentOS 7中安装nginx服务器  下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/ ...

  9. 在CentOS 7中安装与配置Tomcat-8方法

    安装前提 在CentOS 7中安装与配置JDK8 安装tomcat  apache-tomcat-8.0.14.tar.gz文件上传到/usr/local中执行以下操作: [root@localhos ...

随机推荐

  1. 网站开发进阶(一)Tomcat域名或IP地址访问方式配置方法

    Tomcat域名或IP地址访问方式配置方法 1.配置www.***.com域名方式访问 在Tomcat下面配置域名(如:www.***.com)的时候,同时又不希望客户通过我们网站的IP或者域名访问到 ...

  2. web报表工具FineReport常用函数的用法总结(文本函数)

    文本函数 CHAR CHAR(number):根据指定数字返回对应的字符.CHAR函数可将计算机其他类型的数字代码转换为字符. Number:用于指定字符的数字,介于1Number:用于指定字符的数字 ...

  3. mysql 无法插入中文

    MySQL数据库默认编码已经是utf8了, default-character-set = utf8,可是向数据库中表中插入中文时,却老是出现 ....\xB5\xA5\xD1\xA1 for col ...

  4. OS X 平台的 8 个实用终端工具

    本文由 伯乐在线 - shinancao 翻译自 mitchchn.欢迎加入iOS小组.转载请参见文章末尾处的要求. OS X 终端对外开放了许多很强大的UNIX实用工具和脚本.如果你是从Linux转 ...

  5. obj-c编程15[Cocoa实例03]:MVC以及归档化示例

    前面的博文里介绍了归档和解档,这里我们把它实际应用到一个简单的代码中去,将它作为一个多文档应用程序的打开和保存的背后支持.另外这里介绍一下MVC思想,这个在任何语言里都会有,它是一种设计思想,主要可以 ...

  6. 恶补web之一:html学习(1)

    发现以前欠下的web知识太多鸟,只有重头开始好好学吧,恶补第一站就是html知识啦! html指的是超文本标记语言,它不是编程语言,而是一种标记语言;标记语言是一套标记标签(markup tag),h ...

  7. 【作业2.0】HansBug的5-7次OO作业分析与小结,以及一些个人体会

    不知不觉又做了三次作业,容我在本文胡言乱语几句2333. 第五次作业 第五次作业是前面的电梯作业的多线程版本,难度也有了一些提升.(点击就送指导书) 类图 程序的类图结构如下: UML时序图 程序的逻 ...

  8. Dubbo性能调优参数及原理

    本文是针对 Dubbo 协议调用的调优指导,详细说明常用调优参数的作用域及源码. Dubbo调用模型 常用性能调优参数 参数名 作用范围 默认值 说明 备注 threads provider 200 ...

  9. spring boot + quartz 集群

    spring boot bean配置: @Configuration public class QuartzConfig { @Value("${quartz.scheduler.insta ...

  10. JS (全局作用域)

    一.全局函数作用域(把变量的声明和函数的声明放在前面) 作用域(scope):一条数据可以在哪个范围中使用. 通常来说,一段程序代码中所用到的数据并不总是有效/可用的,而限定这个数据的可用性的代码范围 ...