可能后续需要在服务器上跑代码(selenium+Firefox),所以今天就测试安装一下。
我的系统:centos 7.2
python :3.6
具体的成功步骤我还没有琢磨正确,反正现在可以了,公司的服务器我也不能乱弄,回头用我自己的测试测试。
参考的第一个博客
因为最终安装完成之后,我具体也不知道那些步骤是对的,所以把我所有步骤写下来吧。
我当时参考一个博客,最后下面有,安装之后,测试还是出问题。
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
但是执行之后使用,代码测试还是不行。
然后参考第二个博客
注意一点,路径是你现在所处的路径,建议先建立一个目录,省的后续和其他混淆。
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
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
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
yum install gtk3 gtk3-devel
yum install Xvfb libXfont xorg-x11-fonts*
pip3 install pyvirtualdisplay
我直接测试报错,然后安装这个之后好像可以了,不过参考第二个博客之前,我还安装好几个,具体我给忘了,如果缺少其他的,可以百度搜索把
yum -y install xdpyinfo
https://pypi.org/project/PyVirtualDisplay/
pip3 install PyVirtualDisplay
记得修改路径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脚本才知道原来后面我的成功和博客一还有关系的。
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
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
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
yum install gtk3 gtk3-devel
yum install Xvfb libXfont xorg-x11-fonts*
pip3 install pyvirtualdisplay
我直接测试报错,然后安装这个之后好像可以了,不过参考第二个博客之前,我还安装好几个,具体我给忘了,如果缺少其他的,可以百度搜索把
yum -y install xdpyinfo
https://pypi.org/project/PyVirtualDisplay/
pip3 install PyVirtualDisplay
记得修改路径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/