ubuntu配置Selenium+Chromedriver

  1. 下载并安装最新的Google Chrome版本
    执行如下命令:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i --force-depends google-chrome-stable_current_amd64.deb
  1. 下载并安装最新的amd64 chromedriver版本
    两种方式(其实是两个不同网址,但文件都一样):
    (1) 链接地址
    https://sites.google.com/a/chromium.org/chromedriver/downloads
    直接显示最新版链接地址
    或者 https://chromedriver.storage.googleapis.com/index.html
    各种版本都有
    手动下载需要的版本,也可以用wget下载
    (2)执行如下命令(第一条用于获取最新版本号,第二条用于下载):
LATEST=$(wget -q -O - http://chromedriver.storage.googleapis.com/LATEST_RELEASE)
wget http://chromedriver.storage.googleapis.com/$LATEST/chromedriver_linux64.zip

上面两个任选一个可行的,下载后解压得到chromedriver
解压缩命令:unzip chromedriver_linux64.zip
然后添加执行权限:chmod +x chromedriver
把它移动到“/usr/bin”目录下:sudo mv chromedriver /usr/bin/

  1. 安装selenium
    anaconda环境下:conda install selenium
    非anaconda:pip install selenium

  2. 测试
    如果系统是图形化界面,打开python,执行如下命令:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
print(driver.title)

正常打开页面,没有报错就可以了。

Attention
但当我在使用远程终端执行时,报错:
unknown error: DevToolsActivePort file doesn't exist
因为在图形化界面下可以执行,所以猜测可能是图形界面的问题,
所以打开无界面浏览器,测试成功,命令如下:

from selenium import webdriver
options = webdriver.ChromeOptions() # 设置选项
options.add_argument('headless')  # 无图形界面选项
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://www.baidu.com/")
print(driver.title)

网上也有人,碰到这个错误的解决方法不是用这个,但对我来说不适用,我的是用上面方式解决的,下面我也写一下。
有人添加了如下参数,没有解决问题的,可以把参数都加上尝试一下:

chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

参考:

  1. http://blog.likewise.org/2015/01/setting-up-chromedriver-and-the-selenium-webdriver-python-bindings-on-ubuntu-14-dot-04/
  2. https://github.com/timgrossmann/InstaPy/issues/2362

你可能感兴趣的:(Python)