CentOS7 安装Selenium+chrome+chromedriver+java

记录下最近用webmagic+selenium写了个爬虫,本地是在Windows上跑,后来要部署在linux服务器上,配置环境所踩过的坑。

首先:系统环境 (原本就有的环境)

                   CentOS 7 

                   java (jdk1.8)

                   tomcat8.5 

                   mysql5.7

在上有环境基础上进行操作:

             1.安装 chrome

          执行:  yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

             2.安装 chromedriver

                     在安装chromedriver之前,先查看自己系统装的chrome版本:

         执行:  google-chrome --version

                    查看版本对应表:找到对应版本的驱动下载   

              执行: wget   https://npm.taobao.org/mirrors/chromedriver/77.0.3865.40/chromedriver_linux64.zip(这是我对应的版本,    请更具自己的浏览器版本自行修改) 

   将下载的文件解压,放在如下位置:/usr/bin/chromedriver

      执行:unzip chromedriver_linux64.zip 进行解压

      执行: mv -f chromedriver /usr/bin/           移动到/usr/bin/chromedriver

给予执行权限

执行:chmod +x /usr/bin/chromedriver

安装 XVFB

执行: yum install Xvfb -y
执行:yum install xorg-x11-fonts* -y

新建在/usr/bin/ 一个名叫 xvfb-chrom 的文件写入以下内容:

执行:vim  /usr/bin/xvfb-chrome

复制下面内容
#!/bin/bash
_kill_procs() {
kill -TERM $chrome
wait $chrome
kill -TERM $xvfb
}
# Setup a trap to catch SIGTERM and relay it to child processes
trap _kill_procs SIGTERM
XVFB_WHD=${XVFB_WHD:-1280x720x16}
# Start Xvfb
Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
xvfb=$!
export DISPLAY=:99
chrome --no-sandbox --disable-gpu$@ &
chrome=$!
wait $chrome
wait $xvfb
 

添加执行权限

执行:chmod +x /usr/bin/xvfb-chrome

查看当前映射关系

执行:ll /usr/bin/ | grep chrom

 

更改Chrome启动的软连接 

执行:

  1. ln -s /etc/alternatives/google-chrome /usr/bin/chrome

  2. rm -rf /usr/bin/google-chrome
  3. ln -s /usr/bin/xvfb-chrome /usr/bin/google-chrome

查看修改后的映射关系

执行:ll /usr/bin/ | grep chrom

 

 

下面是demo:

   public String test(){
        ChromeOptions options = new ChromeOptions();
        //chrome安装位置
        System.setProperty("webdriver.chrome.bin", "/opt/google/chrome/chrome");
        //chromederiver存放位置
        System.setProperty("webdriver.chrome.driver",
                "/usr/bin/chromedriver");
        //无界面参数
        options.addArguments("headless");
        //禁用沙盒 
        options.addArguments("no-sandbox");

        WebDriver driver = new ChromeDriver(options);
        driver.get("http://www.baidu.com");
        //打印百度的title
        System.out.println(driver.getTitle());
        return driver.getTitle();

    }

下面是运行结果:

你可能感兴趣的:(linux,Selenium,java,CentOS7,chromedriver,chrome)