Python3 selenium在CentOS服务端运行

原文地址 https://www.cyberlight.xyz/pa...
最近尝试在服务器端运行selenium,做下此笔记,其间参考了大量相关教程,感谢每一位共享学习记录的网友!

由于windows10使用的Chrome,我继续尝试在CentOS运行,终于成功!以下是学习记录:

环境:CentOS8, Python 3.6.8

一.CentOS上安装Chrome

请确保身份为root,进入CentOS终端,然后依次输入

查看Chrome版本

  • /opt/google/chrome/chrome -version

PS: chrome卸载方法

  • yum autoremove -y google-chrome

之后,需要解决不能在root下运行chrome的错误 。Chrome安装的根目录默认在 /opt/google/chrome/ 。进入CentOS终端,输入

  • vi /opt/google/chrome/google-chrome

移动光标到最下面,按下键盘的”i”,将 exec -a “$0” “$HERE/chrome” “$@” 后面加上 –user-data-dir –no-sandbox 。整条命令修改后为

exec -a “$0” “$HERE/chrome” “$@” –user-data-dir –no-sandbox

如图,将下图一改为下图二

接着依次按键盘 esc键, : 键 , w键,q键,然后回车(保存并退出)

二.安装Chrome驱动

一定要根据Chrome版本号安装驱动,由于我的Chrome版本为80.0.3987.132(版本一定要下对,否则Python运行会报错)。经测试,我应该下载官网的80.0.3987.16,而不是80.0.3987.106

电脑进入Chrome驱动官网 https://chromedriver.chromium.org/downloads

鼠标右键点击Linux版本,复制链接。(如,我的链接为https://chromedriver.storage.googleapis.com/80.0.3987.16/chromedriver_linux64.zip

进入Centos,切换至系统根目录(注意,不是root根目录)。输入以下命令切换至Chrome安装目录

  • cd /opt/google/chrome

wget + 上面复制的链接( 如,我的链接为https://chromedriver.storage.googleapis.com/80.0.3987.16/chromedriver_linux64.zip

解压下载的zip

  • unzip chromedriver_linux64.zip

此时驱动已安装完毕。

三.Python测试

在Linux下创建Python文件

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

chrome_options.add_argument('--no-sandbox') #让Chrome在root权限运行

chrome_options.add_argument('--disable-dev-shm-usage') #不打开图形界面

chrome_options.add_argument('--headless') #浏览器不提供可视化页面

chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度

chrome_options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug

driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='/opt/google/chrome/chromedriver') #Chrome驱动的位置,此学习记录中安装到了Chrome程序根目录,该路径为绝对路径

driver.get('https://www.baidu.com')

content = driver.page_source.encode('utf-8')

print(content)

如返回百度的html源码,说明程序运行正常,能尽情在Linux使用selenium爬虫了

PS: 运行selenium如遇错误 error: DevToolsActivePort file doesn’t exist ,很可能是安装的Chrome驱动版本不对!

评论区欢迎分享你的学习记录和解决方法哦

10 声望
1 粉丝
0 条评论
推荐阅读
生产环境下如何优雅地使用 Docker 运行宝塔面板?
<p>此方案可能是全网最快的 宝塔面板 部署方案。 复习计算机网络时轻度折腾了 Linux、Docker、路由器 等,竟突然想到 Docker 部署宝塔面板的完美解决方案。在此使用 Python 开发并制作了宝塔面板 Docker 镜...

Cyberbolt阅读 2.9k

超长溢出头部省略打点,坑这么大,技巧这么多?
在业务中,有这么一种场景,表格下的某一列 ID 值,文本超长了,正常而言会是这样:通常,这种情况都需要超长省略溢出打点,那么,就会变成这样:但是,这种展示有个缺点,3 个 ID 看上去就完全一致了,因此,PM ...

chokcoco14阅读 1.3k评论 3

学会了slidev.js的开发者, 也许可以考虑不用ppt了?
    作为一个开发者, 每次使用PPT或者Word写简历或者述职都好痛苦啊, 这些App也不太适合展示代码, 但是今天来的家人们有福了, 一款叫做是slidev的库露出了邪魅的微笑 官网地址。

lulu_up8阅读 1.3k

CSS 高阶小技巧 - 角向渐变的妙用!
本文将介绍一个角向渐变的一个非常有意思的小技巧!我们尝试使用 CSS 绘制如下图形:在之前,类似的图案,其实我们有尝试过,在 单标签实现复杂的棋盘布局 一文中,我们用单标签实现了这样一个棋盘布局:那么,本...

chokcoco7阅读 926

涨姿势了,殊途同归的图片交互动效制作!
最近,在 CodePen 上,看到一个非常有意思的图片动效,效果如下:原效果链接:CodePen Demo - 1 div pure CSS blinds staggered animation in 13 declarations本身这个动画效果,并没有多惊艳。惊艳的地方在于原...

chokcoco7阅读 1.2k评论 2

基于Sanic的微服务基础架构
使用python做web开发面临的一个最大的问题就是性能,在解决C10K问题上显的有点吃力。有些异步框架Tornado、Twisted、Gevent 等就是为了解决性能问题。这些框架在性能上有些提升,但是也出现了各种古怪的问题难以...

jysong6阅读 3.9k评论 3

现代图片性能优化及体验优化指南
对图片的性能优化及体验优化在今天就显得尤为重要。本文,就将从各个方面阐述,在各种新特性满头飞的今天,我们可以如何尽可能的对我们的图片资源,进行性能优化及体验优化。

chokcoco7阅读 1.4k评论 1

10 声望
1 粉丝
宣传栏