美文网首页
centos7上运行selenium

centos7上运行selenium

作者: 逍遥_yjz | 来源:发表于2021-05-12 13:29 被阅读0次
    • 概述
      使用selenium爬取网页数据,运行平台是centos7,除安装selenium外,必须做一些环境配置。

    1. 安装

    pip install selenium
    

    2. 安装google-chrome

    首先下载安装包

    wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
    

    然后使用yum安装刚下载的安装包

    yum install google-chrome-stable_current_x86_64.rpm
    

    安装之后,会显示当前安装的版本,如图



    可以看到我的版本是 90.0.4430.212-1,后面的.212-1不用理会

    linux(centos)查看chrome版本号

    google-chrome --version
    

    3. 安装对应版本的chromedriver (必须与google-chrome版本对应)

    进入 https://chromedriver.chromium.org/downloads (需要翻墙,如不能翻墙,请寻找国内镜像)选择 对应的版本,或者使用https://chromedriver.storage.googleapis.com/index.html,如下图


    点击后,进入下一个页面,选择linux版本,并右键复制地址

    wget https://chromedriver.storage.googleapis.com/90.0.4430.24/chromedriver_linux64.zip
    

    下载完成后,解压



    将 chromedriver添加到环境变量即可,由于我得目录是 /envConfig, 所以在/etc/profile末尾添加

    #添加chromedriver
    export PATH=$PATH:/envConfig/
    

    即可。也可将其移动到/usr/bin目录下

    mv chromedriver /usr/bin
    

    4. 验证

    随后进入 python 环境
    实验一

    from selenium import webdriver, common
    
    
    url = 'https://chromedriver.chromium.org/downloads'
    # 使用headless无界面浏览器模式
    chrome_options = webdriver.ChromeOptions()
    
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--headless') #//增加无界面选项
    chrome_options.add_argument('--disable-gpu') #//如果不加这个选项,有时定位会出现问题
    
    
    browser = webdriver.Chrome(chrome_options=chrome_options)
    browser.get(url)
    
    

    实验二:

    from selenium import webdriver, common
    
    
    url = 'http://www.nmc.cn/publish/typhoon/typhoon_new.html'
    from selenium.webdriver.chrome.options import Options
    chrome_options = Options()
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_options.add_argument('--headless')
    browser = webdriver.Chrome(chrome_options=chrome_options)
    
    browser.get(url)
    print(browser.page_source)
    browser.quit()
    
    
    

    5. docker 运行 selenium 报错

    5.1 文件权限问题

    WebDriverException: Message: ‘chromedriver‘ executable may have wrong permissions.
    出现这种问题,一般四种情况

    • 1、没装chromedriver
      版本号一定要对应上,查看一下你的chrome版本,对应好
    • 2、没有执行权限
      大多数人如果是做项目的话,爬虫一般都在服务器上,本地上传的时候没给权限
    ls -l
    

    这里赋予可执行权限

    chmod -R 777 chromedriver
    
    image.png

    5.2 环境配置问题

    报错:
    docker Message: 'chromedriver' executable needs to be in PATH.
    以前配置时,chromedriver将放入到/envConfig 内,然后通过配置文件配置,可行;但是在docker 内同样的配置出错。
    后来将 chromedriver 放入到 /usr/bin/ 下
    成功解决。

    5.3 装了Chrome 后,yum 无法安装安装包啦

    安装Chrome 后,yum install unzip 都报错:
    failure: repodata/primary.xml.gz from google-chrome: [Errno 256] No more mirrors to try.
    解决方法:

    需要到/etc/yum.repos.d目录下,找到chrome的repo,也就是google-chrome.repo, 删除掉或者mv到别的地方,然后yum clean all, 就能解决。
    主要是因为这个chrome的源没法用

    cd /etc/yum.repos.d
    rm -rf google-chrome.repo
    yum clean all
    

    相关文章

      网友评论

          本文标题:centos7上运行selenium

          本文链接:https://www.haomeiwen.com/subject/muxadltx.html