centos7.2 无界面的系统安装selenium+Firefox的踩坑过程

1、说明

可能后续需要在服务器上跑代码(selenium+Firefox),所以今天就测试安装一下。

我的系统:centos 7.2
python :3.6

2、步骤:

具体的成功步骤我还没有琢磨正确,反正现在可以了,公司的服务器我也不能乱弄,回头用我自己的测试测试。

成功的结果:
在这里插入图片描述

1、参考第一个博客–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

但是执行之后使用,代码测试还是不行。

2、参考第二个博客安装:

后参考第二个博客

注意一点,路径是你现在所处的路径,建议先建立一个目录,省的后续和其他混淆。

1.下载驱动

wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz

tar -zxvf geckodriver-v0.19.1-linux64.tar.gz

ln -s 路径/geckodriver /usr/bin/geckodriver

2.下载firefox

wget https://ftp.mozilla.org/pub/firefox/releases/56.0.2/linux-x86_64/en-US/firefox-56.0.2.tar.bz2
yum install bzip2 # 可以先安装这个,不然会报错
tar xjvf firefox-56.0.2.tar.bz2        # need yum install bzip2

ln -s 路径/firefox/firefox /usr/bin/firefox

3.安装selenium

wget https://files.pythonhosted.org/packages/14/d6/650f5d2e149b83cd24989653efedf47a24cafb72e9d2dd03191a9f52f2f4/selenium-3.8.1-py2.py3-none-any.whl

pip3 install selenium-3.8.1-py2.py3-none-any.whl

4.安装运行依赖

yum install gtk3 gtk3-devel

yum install Xvfb libXfont xorg-x11-fonts*

pip3 install pyvirtualdisplay

5、安装xdpyinfo

我直接测试报错,然后安装这个之后好像可以了,不过参考第二个博客之前,我还安装好几个,具体我给忘了,如果缺少其他的,可以百度搜索把

yum -y install xdpyinfo

6、安装PyVirtualDisplay模块

https://pypi.org/project/PyVirtualDisplay/
pip3 install PyVirtualDisplay

7、测试代码:

记得修改路径FirefoxBinary('/root/tools/firefox/firefox')

#!/usr/bin/python3

# -*- coding:utf-8 -*-

from selenium import webdriver

from pyvirtualdisplay import Display

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

display = Display(visible=0, size=(800,600))

display.start()

# binary = FirefoxBinary('路径/firefox/firefox')
binary = FirefoxBinary('/root/tools/firefox/firefox')

driver = webdriver.Firefox(firefox_binary=binary)

driver.get('https://www.baidu.com')

print(driver.title)

driver.quit()

display.stop()

成功的结果:
在这里插入图片描述

用自己的服务器重新弄一遍:

因为我是直接参考第二个博客弄到,但是执行完有一点小问题,后来就解决了。主要需要在第一个下载驱动的地方,增加一个步骤cp geckodriver /usr/bin/,我也是执行完毕之后报错最后在这个地方解决的,这个主意还是参考了博客1的代码,看了下博客一的sh脚本才知道原来后面我的成功和博客一还有关系的。

1.下载驱动

wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz

tar -zxvf geckodriver-v0.19.1-linux64.tar.gz

#执行完上面会在当前文件夹下生成一个geckodriver 目录,直接复制到/usr/bin/下,不然后面运行ln -s和代码报错。
cp geckodriver /usr/bin/
ln -s 路径/geckodriver /usr/bin/geckodriver

2.下载firefox

wget https://ftp.mozilla.org/pub/firefox/releases/56.0.2/linux-x86_64/en-US/firefox-56.0.2.tar.bz2
yum install bzip2 # 可以先安装这个,不然会报错
tar xjvf firefox-56.0.2.tar.bz2        # need yum install bzip2

ln -s 路径/firefox/firefox /usr/bin/firefox

3.安装selenium

wget https://files.pythonhosted.org/packages/14/d6/650f5d2e149b83cd24989653efedf47a24cafb72e9d2dd03191a9f52f2f4/selenium-3.8.1-py2.py3-none-any.whl

pip3 install selenium-3.8.1-py2.py3-none-any.whl

4.安装运行依赖

yum install gtk3 gtk3-devel

yum install Xvfb libXfont xorg-x11-fonts*

pip3 install pyvirtualdisplay

5、安装xdpyinfo

我直接测试报错,然后安装这个之后好像可以了,不过参考第二个博客之前,我还安装好几个,具体我给忘了,如果缺少其他的,可以百度搜索把

yum -y install xdpyinfo

6、安装PyVirtualDisplay模块

https://pypi.org/project/PyVirtualDisplay/
pip3 install PyVirtualDisplay

7、测试代码:

记得修改路径FirefoxBinary('/root/tools/firefox/firefox')

#!/usr/bin/python3

# -*- coding:utf-8 -*-

from selenium import webdriver

from pyvirtualdisplay import Display

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

display = Display(visible=0, size=(800,600))

display.start()

# binary = FirefoxBinary('路径/firefox/firefox')
binary = FirefoxBinary('/root/tools/firefox/firefox')

driver = webdriver.Firefox(firefox_binary=binary)

driver.get('https://www.baidu.com')

print(driver.title)

driver.quit()

display.stop()

最后成功的示意图:
在这里插入图片描述

参考:

主要找到一些可以参考的博文:
https://www.jianshu.com/p/26ef8a3efd19

https://blog.csdn.net/who__are__you_/article/details/79176464

https://blog.csdn.net/u014283248/article/details/80631072

https://pypi.org/project/PyVirtualDisplay/

猜你喜欢

转载自blog.csdn.net/weixin_42081389/article/details/105563987