无界面Ubuntu服务器搭建selenium+chromedriver+VNC运行环境
搭建背景
- 有时候我们需要把基于selenium的爬虫放到服务器上跑的时候,就需要这样一套运行环境,其中VNC是虚拟的显示模式,用于排查定位线上问题以及实时运行情况。
搭建流程
- 安装虚拟输出设备:
sudo apt-get install xvfb
- 下载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
, - 安装:
sudo dpkg -i google-chrome-stable_69.0.3497.100-1_amd64.deb
。 - 安装对应依赖:
apt-get -f install
。 - 下载对应的chromedriver,
wget https://raw.githubusercontent.com/wycm/md-image/master/2019-03-14/chromedriver_linux64.zip
- 解压:
unzip chromedriver_linux64.zip
- 启动虚拟化输出设备
Xvfb :99 -ac -screen 0 1280x1024x24 &
- 设置输出设备:
export DISPLAY=:99
- 执行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()
- 测试环境是否安装成功,能正确执行说明基本的运行环境已经搭建成功,如下图
VNC安装
- 以上基本的运行环境虽然搭建好了,有时候需要用于线上问题定位和调试的时候,那就需要有可视化输出,VNC就是用于可视化的。具体安装步骤如下
- 安装VNC需要的桌面环境:
sudo apt-get install --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y
- 安装VNC server:
sudo apt-get install vnc4server -y
- 启动server,并设置输出设备号为1:
vncserver :1
,首次运行会提示你设置密码。用于在后面使用客户端登录时需要。 - 指定接下来的进程的输出设备号为1(就为上一步指定设备号)。
export DISPLAY=:1
。 - 打开mac的
屏幕共享
,然后连上这台远程server,输入刚刚设置的密码。然后执行python chrome.py
就能看到这台server的实时输出了。如下图 - 如果用于线上运行的时候,就没必要运行VNC server了,直接输出到Xvfb虚拟设备就可以了,节省资源。
版权声明
作者:wycm
出处:https://www.cnblogs.com/w-y-c-m/p/10533361.html
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
无界面Ubuntu服务器搭建selenium+chromedriver+VNC运行环境的更多相关文章
- ubuntu 下搭建apache+python的运行环境
ubuntu下怎么搭建apache+python运行环境,可以参考http://www.01happy.com/ubuntu-apache-mod-python/ ,这里只是简单的记录下步骤,本文主要 ...
- 在Ubuntu下搭建ASP.NET 5开发环境
在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...
- 服务器搭建远程docker深度学习环境
服务器搭建远程docker深度学习环境 本文大部分内容参考知乎文章 Docker+PyCharm快速搭建机器学习开发环境 搭建过程中出现ssh连接问题可以查看最后的注意事项 Docker Docker ...
- Ubuntu下搭建Hyperledger Fabric v1.0环境
多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意. 一.安装Ubuntu16 虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ub ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- 搭建Linux(Ubuntu)系统下的Differential Datalog运行环境
DDlog is a bottom-up, incremental, in-memory, typed Datalog engine. It is well suited for writing pr ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境(转)
前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装.部署和升级,非常 ...
- [转]Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
本文转自:http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 ...
- windows下搭建学习objective-c 的运行环境【转载】
对于Iphone开发学习者而言,Object -c 是必修的语言.但是由于苹果的自我封闭的产业链发展模式(从芯片.机器.开发语言.终端产品.服务)的限制,要想开发针对苹果iPhone等产品的应用程序, ...
随机推荐
- mySQL数据库一:数据类型
integer(整型)varchar(字符串类型,必须要跟最大字符串)text(大文本)float(单精度,即七到八位有效数字)double(双精度,即15到16位有效数字)date(只有年月日)ti ...
- 用示例详解php连接数据库操作
首先数据库mydb有三个表: 1 info表 2 users表 3 sname表 首先先做一个登录主页面 login_1.php <!DOCTYPE html PUBLIC "- ...
- 【七牛云】时间戳防盗链鉴权php实现
基于时间戳防盗链的功能其实每家的CDN都是支持的.主要是通过使用约定的加密字符串来对具有访问有效期的资源链接进行一些加密计算的到一个sign值,然后访问外链里面带上这个sign和截止时间戳去访问CDN ...
- Delphi使用ADO连接网络数据库,断网后重连问题
原始文章: https://blog.csdn.net/blog_jihq/article/details/11737699# 使用TADOConnection对象连接网络数据库(以MySQL为例), ...
- 简明 Vim 教程
学习 vim 并且其会成为你最后一个使用的文本编辑器.没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用. 我建议下面这四个步骤: 存活 感觉良好 觉得更好,更强,更快 使用VIM的超能力 ...
- jQuery回溯
1.jQuery有个很好用的方法是 end(); 2.在进行链式操作时,使用end方法,可以回溯到上一个jQuery对象. 3.实现原理: jQuery内部有一个对象栈,当形成新的对象时,会将新对象推 ...
- 【BZOJ3312】[Usaco2013 Nov]No Change 状压DP+二分
[BZOJ3312][Usaco2013 Nov]No Change Description Farmer John is at the market to purchase supplies for ...
- Redis构建处理海量数据的大型购物网站
本系列教程内容提要 Java工程师之Redis实战系列教程教程是一个学习教程,是关于Java工程师的Redis知识的实战系列教程,本系列教程均以解决特定问题为目标,使用Redis快速解决在实际生产中的 ...
- Web界面的服务器监测工具(转载)
企业服务器对于企业业务持续性意义重大,系统管理员需要密切关注企业服务器以确保一切正常运行.当发现问题的时候,他们需要知道问题开始出现时的状况,因此调查可以重点放在问题出现的时候,这就意味着定期记录信息 ...
- shell 输出文件内容
cat $filepath | while read line; do echo $line ; done #!/bin/bash #filepath=/opt/jenkins_home/worksp ...