搭建背景

  • 有时候我们需要把基于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

您的支持是对博主最大的鼓励,感谢您的认真阅读。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

无界面Ubuntu服务器搭建selenium+chromedriver+VNC运行环境的更多相关文章

  1. ubuntu 下搭建apache+python的运行环境

    ubuntu下怎么搭建apache+python运行环境,可以参考http://www.01happy.com/ubuntu-apache-mod-python/ ,这里只是简单的记录下步骤,本文主要 ...

  2. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  3. 服务器搭建远程docker深度学习环境

    服务器搭建远程docker深度学习环境 本文大部分内容参考知乎文章 Docker+PyCharm快速搭建机器学习开发环境 搭建过程中出现ssh连接问题可以查看最后的注意事项 Docker Docker ...

  4. Ubuntu下搭建Hyperledger Fabric v1.0环境

      多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意. 一.安装Ubuntu16 虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ub ...

  5. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  6. 搭建Linux(Ubuntu)系统下的Differential Datalog运行环境

    DDlog is a bottom-up, incremental, in-memory, typed Datalog engine. It is well suited for writing pr ...

  7. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境(转)

    前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装.部署和升级,非常 ...

  8. [转]Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    本文转自:http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 ...

  9. windows下搭建学习objective-c 的运行环境【转载】

    对于Iphone开发学习者而言,Object -c 是必修的语言.但是由于苹果的自我封闭的产业链发展模式(从芯片.机器.开发语言.终端产品.服务)的限制,要想开发针对苹果iPhone等产品的应用程序, ...

随机推荐

  1. C++11新特性之四——nullptr

    1. 引入nullptr的原因 引入nullptr的原因,这个要从NULL说起.对于C和C++程序员来说,一定不会对NULL感到陌生.但是C和C++中的NULL却不等价.NULL表示指针不指向任何对象 ...

  2. js里面声明变量时候的注意事项

    变量名可以是中文,只能有下划线,$,数字和字母组成,开头只能以下划线(不建议使用)和字母开头.

  3. php学习二:表达式

    1.  可变变量$$ 在php中,可变变量可以用$$来表示, 代码如下: $name = "zhangSan"; $$name = "liSi"; //相当于$ ...

  4. 96、facebook Fresco框架库源使用(转载)

    各个属性详情:http://blog.csdn.net/y1scp/article/details/49245535 开源项目链接 facebook Fresco仓库:git clone https: ...

  5. 【BZOJ2554】Color 概率神题

    [BZOJ2554]Color Description 有n个球排成一列,每个球都有一个颜色,用A-Z的大写字母来表示,我们每次随机选出两个球ball1,ball2,使得后者染上前者的颜色,求期望操作 ...

  6. ios UITableView默认选中第一行

    NSIndexPath *ip = [NSIndexPath indexPathForRow:0inSection:0]; [titleTableViewselectRowAtIndexPath:ip ...

  7. Mac - 如何在windows下打开 pages

    1.iCloud 苹果邮箱网页版打开(www.icloud.com) 2.在pages编辑完后,导出word格式.便能继续编辑.修改文档内容,有小部分字体.设计会在导出word格式后发生改变. 3.导 ...

  8. onethink判断是否是手机访问?

    第一步:找到:Application / Common / Common / function.php 添加判断是否是手机访问的代码: /** * 判断当前访问的用户是 PC端 还是 手机端 返回tr ...

  9. 模拟退火算法(run away poj1379)

    http://poj.org/problem?id=1379 Run Away Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: ...

  10. php安装xmlwriter遇到报错及解决方法

    Q1:make的时候报' error: 'zend_class_entry' has no member named 'default_properties''错误, A:把 错误行C文件中defau ...