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

xiaoxiao2021-02-28  47

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

我是按照下面这个博客写的装的,但是经过自己的修改才成功。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 7Firefox 56.0+Selenium 3.5+geckodriver 0.19+

安装

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

安装火狐

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

安装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 这个一定要按照版本来

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

yum install gtk3 yum install gtk2

安装火狐驱动最新版本下载地址: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 pyvirtualdisplay import Display from selenium import webdriver 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
转载请注明原文地址: https://www.6miu.com/read-2632060.html

最新回复(0)