之前搞了一个自动下载Volmoe.com上的漫画的小脚本,基于Selenium和火狐Headless模式,最近想把这个脚本跑在VPS上。在VPS上搭建火狐Headless的运行环境经历了一些波折,在此记录一下。
1. 安装Python3
yum install python3 python3 -V
2.安装火狐 ( https://www.mozilla.org/zh-CN/firefox/new/ )
#安装yum中的火狐,解决依赖问题 yum install firefox firefox -V #查询旧火狐版本 rpm -qa | grep firefox #卸载 rpm -e firefox-68.5.0-2.el8_1.x86_64 #下载并安装新版火狐 yum install wget tar bzip2 nano wget https://download-installer.cdn.mozilla.net/pub/firefox/releases/73.0.1/linux-x86_64/zh-CN/firefox-73.0.1.tar.bz2 tar -jxvf firefox-73.0.1.tar.bz2 mv firefox /usr/local/ ln -s /usr/local/firefox/firefox /usr/bin/firefox firefox -V
3.下载geckodriver ( https://github.com/mozilla/geckodriver/releases )
mkdir vol && cd vol wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz tar zxvf geckodriver-v0.26.0-linux64.tar.gz mv geckodriver /usr/local/bin geckodriver -V
4.安装虚拟桌面环境
yum install Xvfb xorg-x11-fonts* xdpyinfo yum install libXfont
5.安装依赖
pip3 -V pip3 install --user pyvirtualdisplay selenium
6.测试脚本
nano test.py
之后输入下面的脚本,ctrl+o保存,ctrl+x退出。
#!/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('/usr/bin/firefox') driver = webdriver.Firefox(firefox_binary=binary) driver.get('https://www.baidu.com') print(driver.title) driver.quit() display.stop()
7.运行测试脚本
python3 test.py
不出意外应该会输出“百度一下,你就知道”,至此Headless模式的火狐就运行成功了。