CentOS无桌面环境部署Selenium+Firefox (折腾笔记) 附一键安装脚本

没有什么开发环境是很容易就装上的。。。。

我是按照下面这个博客写的装的,但是经过自己的修改才成功。2018/6/9

一定严格按照博客里面的版本来,这个版本对不上报很多奇怪的错误的

如:selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilitie

如:selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 1

如:selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 255

你要是在这个博客没找到解决方法可以按照这个思路来:

find / -name 'geckodriver.log' 全局查找火狐的驱动的日志

tail -100f geckodiver.log 看日志报什么错误

google 或百度这个错误。

桌面环境使用Selenium默认会打开浏览器界面,但是如果要部署在无桌面环境的服务器环境,使用普通方法没法运行Selenium。

在服务器环境安装Gnome或者其他桌面环境,比较占用资源。

可以通过安装虚拟桌面环境解决这个问题。

Xvfb(X virtual framebuffer)是一个虚拟显示服务器,不需要显示设备也能模拟运行图形界面。

系统要求:

  • CentOS 7
  • Firefox 56.0+
  • Selenium 3.5+
  • geckodriver 0.19+

安装

  1. 安装Xvfb及其他依赖
    yum install xorg-x11-server-Xvfb bzip gtk3

  2. 安装火狐

    CentOS源里的火狐版本为52.3.0 ESR延长支持版,版本较老,和最新的Selenium版本不兼容,可能会启动不了。从官方下载56.0以上的版本。

     
           
    1
    2
    3
    4
     
           
    cd /usr/ local
    wget https://ftp.mozilla.org/pub/firefox/releases/56.0.2/linux-x86_64/en-US/firefox-56.0.2.tar.bz2
    tar xjvf firefox-56.0.2.tar.bz2
    ln -s /usr/ local/firefox/firefox /usr/bin/firefox
  3. 安装Seleniumwget 

    wget https://files.pythonhosted.org/packages/14/d6/650f5d2e149b83cd24989653efedf47a24cafb72e9d2dd03
    191a9f52f2f4/selenium-3.8.1-py2.py3-none-any.whl
    pip install selenium-3.8.1-py2.py3-none-any.whl
    这个一定要按照版本来

  4. 安装gtk3 gtk2 旧的火狐版本是需要gtk2 的,新的需要gtk3为了不报错。还是全装上吧,

    yum install gtk3
    yum install gtk2

  5. 安装火狐驱动
    最新版本下载地址:https://github.com/mozilla/geckodriver/releases

     
           
    1
    2
    3
    4
     
           
    cd /usr/local/bin
    wget https: //github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz
    tar xvzf geckodriver-*.tar.gz
    ln -s /usr/local /geckodriver /usr /bin/geckodriver

    6. 测试

1,控制台输入firefox 

出现类似这个说明火狐安装成功。Error: GDK_BACKEND does not match available displays

2,测试爬虫脚本

from selenium import webdriver
from pyvirtualdisplay import Display

display = Display(visible=0, size=(800,600))
display.start()
driver = webdriver.Firefox()
driver.get('https://www.baidu.com')
print(driver.title)
driver.quit()
display.stop()

输出:百度一下,你就知道说明安装成功。

吧下面的复制出来保存为installSelenium.sh 执行 sh installSelenium.sh即可安装

yum install xorg-x11-server-Xvfb bzip gtk3
cd /usr/local
wget https://ftp.mozilla.org/pub/firefox/releases/56.0.2/linux-x86_64/en-US/firefox-56.0.2.tar.bz2
tar xjvf firefox-56.0.2.tar.bz2
rm -f /usr/bin/firefox
ln -s /usr/local/firefox/firefox /usr/bin/firefox
wget   https://files.pythonhosted.org/packages/14/d6/650f5d2e149b83cd24989653efedf47a24cafb72e9d2dd03191a9f52f2f4/selenium-3.8.1-py2.py3-none-any.whl
pip uninstall selenium
pip install selenium-3.8.1-py2.py3-none-any.whl
yum install gtk3
yum install gtk2
cd /usr/local/bin
wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz
tar xvzf geckodriver-*.tar.gz
rm -f /usr/bin/geckodriver
ln -s /usr/local/geckodriver /usr/bin/geckodriver


猜你喜欢

转载自blog.csdn.net/u014283248/article/details/80631072