1. 安装虚拟屏幕
我的树莓派系统是 buster lite 版,没有界面,所以先要安装 xvfb
2. 安装 firefox
1 2 3 4
   | sudo apt install firefox-esr
  firefox-esr -v 
 
   | 
 
3. 安装 geckodriver
下载安装 geckodriver-v0.23.0-arm7hf 版的。
- v0.24.0以后不发布arm7hf平台了,需要自己编译。
 
- 好在v0.23.0也可以支持较新版本的 Firefox。
 
1 2 3 4 5 6 7 8
   |  aria2c -c https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-arm7hf.tar.gz
  tar -xf geckodriver-v0.23.0-arm7hf.tar.gz
  sudo chmod a+x geckodriver
  sudo mv geckodriver /usr/local/bin/  
 
  | 
 
ref: https://github.com/mozilla/geckodriver/releases
4. 安装 selenium, pyvirtualdisplay
ref: https://www.selenium.dev/downloads/
1 2
   | pip3 install selenium==4.0.0a5 pip3 install pyvirtualdisplay
   | 
 
5. python代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
   | import time
  from bs4 import BeautifulSoup from selenium import webdriver
  import pyvirtualdisplay
 
  display = pyvirtualdisplay.Display(backend='xvfb', visible=False, size=(1024, 768)) display.start() print('Initalized Display:', display.size, display.backend)
 
  options = webdriver.FirefoxOptions() options.log.level = "trace"  options.headless = True 
  driver = webdriver.Firefox(options=options)
 
  url = 'https://www.baidu.com' driver.get(url) print(driver.title)
 
  driver.close() driver.quit() display.stop() print('Quit...')
   | 
 
6. 添加 selenium 定时任务
可以用 crontab -e 命令添加 selenium 定时任务, 最后一行加入:
1 2 3
   | # 格式 # minute hour dayofmonth month dayofweek    command  0 8 * * * python3 task.py &
   | 
 
如果执行不成功,可能是找不到 selenium webdriver 的路径。
- 检查 firefox-esr 和 geckodriver 的安装目录。
 
1 2 3 4
   | which firefox-esr
  which geckodriver
 
   | 
 
- 然后,在命令前面加上路径配置, 
export PATH=/usr/local/bin:/usr/bin; 
1
   | 0 8 * * * export PATH=/usr/local/bin:/usr/bin; python3 task.py &
   |