zoukankan      html  css  js  c++  java
  • 无界面Ubuntu服务器搭建selenium+chromedriver+VNC运行环境

    搭建背景

    • 有时候我们需要把基于selenium的爬虫放到服务器上跑的时候,就需要这样一套运行环境,其中VNC是虚拟的显示模式,用于排查定位线上问题以及实时运行情况。

    搭建流程

    1. 安装虚拟输出设备:sudo apt-get install xvfb
    2. 下载google-chrome-stable deb包,由于网上大部分链接没法下载,我这里下载了一个上传到github上了,wget https://raw.githubusercontent.com/wycm/md-image/master/2019-03-14/google-chrome-stable_69.0.3497.100-1_amd64.deb
    3. 安装:sudo dpkg -i google-chrome-stable_69.0.3497.100-1_amd64.deb
    4. 安装对应依赖:apt-get -f install
    5. 下载对应的chromedriver,wget https://raw.githubusercontent.com/wycm/md-image/master/2019-03-14/chromedriver_linux64.zip
    6. 解压:unzip chromedriver_linux64.zip
    7. 启动虚拟化输出设备Xvfb :99 -ac -screen 0 1280x1024x24 &
    8. 设置输出设备:export DISPLAY=:99
    9. 执行chrome.py脚步(需要安装:selenium:pip install selenium),代码如下:
      from selenium import webdriver
      import time
      
      if __name__ == '__main__':
          options = webdriver.ChromeOptions()
          options.add_argument("--no-sandbox")
          //刚刚解压的chromedriver路径
          driver = webdriver.Chrome("/root/wy/chromedriver",chrome_options=options)
          driver.get('https://www.baidu.com')
          print(driver.title)
          time.sleep(1)
          driver.close()
      
    10. 测试环境是否安装成功,能正确执行说明基本的运行环境已经搭建成功,如下图

    VNC安装

    1. 以上基本的运行环境虽然搭建好了,有时候需要用于线上问题定位和调试的时候,那就需要有可视化输出,VNC就是用于可视化的。具体安装步骤如下
    2. 安装VNC需要的桌面环境:sudo apt-get install --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y
    3. 安装VNC server:sudo apt-get install vnc4server -y
    4. 启动server,并设置输出设备号为1:vncserver :1,首次运行会提示你设置密码。用于在后面使用客户端登录时需要。
    5. 指定接下来的进程的输出设备号为1(就为上一步指定设备号)。export DISPLAY=:1
    6. 打开mac的屏幕共享,然后连上这台远程server,输入刚刚设置的密码。然后执行python chrome.py就能看到这台server的实时输出了。如下图
    7. 如果用于线上运行的时候,就没必要运行VNC server了,直接输出到Xvfb虚拟设备就可以了,节省资源。

    版权声明
    作者:wycm
    出处:https://www.cnblogs.com/w-y-c-m/p/10533361.html
    您的支持是对博主最大的鼓励,感谢您的认真阅读。
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    一个程序员日常分享,包括但不限于爬虫、Java后端技术,欢迎关注

  • 相关阅读:
    eclipse中创建完整的maven项目
    Nginx+tomcat配置集群负载均衡
    Git的安装与使用
    Angularjs checkbox的ng属性
    chrome渲染hover状态tranform相邻元素抖动bug
    nodejs创建express+ejs项目
    ubuntu常用命令
    ubuntu查看命令
    sublime text2卸载和重新安装
    fiddler代理
  • 原文地址:https://www.cnblogs.com/w-y-c-m/p/10533361.html
Copyright © 2011-2022 走看看