树莓派3B+ 配置 python + selenium + chrome
因为我自己用,所以用root登陆的树莓派
安装 chrome
chrome 在树莓派中为:chromium-browser
使用命令:
sudo apt-get install chromium-browser
如果报无法安装 则需要添加源。我是使用的中科大的源,直接就可以安装
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
网上是在文件 /etc/apt/sources.list 添加。
deb http://pipplware.pplware.pt/pipplware/dists/jessie/main/binary /
执行 chromium-browser --version 查看版本信息。
Chromium 65.0.3325.181 Built on Raspbian , running on Raspbian 9.6
下载驱动包 chromium-chromedriver
下载指定 :
chromium-chromedriver_65.0.3325.181-0ubuntu0.14.04.1_armhf.deb
下载地址:
wget http://launchpadlibrarian.net/361669488/chromium-chromedriver_65.0.3325.181-0ubuntu0.14.04.1_armhf.deb
如果其它的则需要进行搜索查询。
打开 https://launchpad.net/
搜索 chromium-chromedriver armhf 版本号
选择下载指定的deb文件。
如果不好找,可以在Google里搜索 chromium-chromedriver armhf 65.0.3325.181 我是这样找到的。
下载完进行安装
dpkg -i chromium-chromedriver_65.0.3325.181-0ubuntu0.14.04.1_armhf.deb
安装虚拟桌面
使用软件
apt-get install xvfb
安装完后执行
Xvfb -ac :7 -screen 0 1280x1024x8 -extension RANDR -nolisten inet6 &
导入系统 (:7 和上一步的number号相同)
export DISPLAY=:7
建议加入到启动项中。因为这个每次重启都需要重新执行一次。
上面就是按照网上的步奏,下载chromedriver时从Google搜索里拿到的
然后就是在Python里使用,我的Python是树莓派自带的3.5
安装selenium
pip install selenium
测试代码如下,走了一些弯路,网上找了一些方法,在python里运行开始一直出错
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.35 (0),platform=Linux 4.14.79-v7+ armv7l)
后面尝试直接运行/usr/lib/chromium-browser/chromium-browser, 发现是因为我使用的root账号,必须要加上参数--no-sandbox, 后面网上搜索了下,加上其他参数,顺利运行起来,测试代码如下
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('lang=zh_CN.UTF-8')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
browser = webdriver.Chrome(executable_path='/usr/lib/chromium-browser/chromedriver', chrome_options=chrome_options)
browser.get('http://www.baidu.com')
print(browser.title)
运行结果如下
root@raspberrypi:~# python sc.py
百度一下,你就知道
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。