centos7中配置python爬虫selenium+chromium+chromedriver环境

今天为了爬取某异步加载网站的数据,开始自学了selenium,不得不说selenium还是很方便的工具,适合无脑爬取异步加载的网站。首先我在自己的windows电脑下配置了selenium和chromedriver的chrome浏览器内核,正常调试好程序后准备部署到centos7服务器上,但是遇到了很多问题,不停报错,在踩了很多雷以后终于可以完美部署selenium+chromium+chromedriver环境顺利爬虫了!

接下来我就详细介绍下正确的配置方式

  1. 安装selenium:这一步比较简单,直接pip安装就行:

    pip install selenium
    
  2. 安装chromium:由于谷歌chrome并不支持linux,也就更不支持centos了,所以需要安装chromium,不过不用担心,chromium也是谷歌的开源项目,与chrome并没有太大的区别

    yum install chromium
    

    这一步也没什么问题,需要注意一下chromium安装的版本,因为要与下一步需要安装的chromedriver版本相适配,二者版本不同都会报错,这里我也是踩雷了,chromium默认安装的最新版为“79.0.3945.130-1.el7”,但是chromedriver已经更新到了81.0,第一次安装的时候我选择了最高版本的chromedriver,但是chromium还是79.0版本,执行python脚本的时候就报错版本不适配,所以我重新安装了对应版本的chromedriver。

    如何查看安装的chromium版本?yum就可以看到

    yum list installed
    

  1. 安装chromedriver:这里我们从taobao镜像站点安装:

    # 下载对应版本的chromedriver
    wget https://npm.taobao.org/mirrors/chromedriver/79.0.3945.16/chromedriver_linux64.zip
    # 解压
    unzip chromedriver_linux64.zip
    # 把chromedriver移动到系统目录
    mv chromedriver /usr/bin
    

    方法2:直接yum安装,这样其实更省事儿一点

    yum chromedriver
    

    安装完成后确认一下版本与chromium保持一致:

到这一步已经配置好selenium+chromium+chromedriver的环境了,接下来我们写一个最简单的python脚本试一下!

from selenium import webdriver
from selenium.webdriver.chrome.options import Options  # 导入浏览器内核设置,主要是为了设置无头(headless)模式

url = 'www.baidu.com'
chrome_options = Options()
chrome_options.add_argument('--headless')  # 设置Chrome为无头模式
driver = webdriver.Chrome(options=chrome_options)
driver.get(url)
driver.close()

诶,报错了:The process started from chrome location /usr/lib64/chromium-browser/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed

按照网上的教程:https://cloud.tencent.com/developer/article/1404558

在脚本上加上两句话:

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

完美解决了!

posted @ 2020-04-16 11:13  海淀区小吴同学  阅读(2288)  评论(0编辑  收藏  举报