首页 > 其他分享 >liunx服务器使用selenium

liunx服务器使用selenium

时间:2023-06-26 12:01:02浏览次数:48  
标签:chrome sudo selenium chromedriver Xvfb liunx 服务器 options


前言

最近在本地windows系统(下面简称本地)用selenium写了一个自动化爬虫,放到我liunx服务器(下面简称服务器)上面运行报错,记录处理流程


一、服务器下载google-chrome、chromedriver

一开始以为和本地一样,下好chrome浏览器和驱动就可以直接运行了(太天真了~)

1、下载chrome

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

查看chrome版本安装对应版本chromedriver

google-chrome --version

liunx服务器使用selenium_chrome

我的版本是114.0.5735.133

2、下载chromedriver

去这里下载对应liunx版本安装包:https://registry.npmmirror.com/binary.html?path=chromedriver/

找不到一模一样的就找最相近的版本,也可以使用,比如我找不到114.0.5735.133,用的就是:114.0.5735.90/chromedriver_linux64.zip下载到服务器上,解压使用

解压:
unzip chromedriver_linux64.zip

移动到执行目录:
mv chromedriver /usr/bin/chromedriver

给驱动执行权限,我懒直接给777:
cd /usr/bin/
chmod 777 chromedriver

到这我已经就好了,去执行脚本,各种报错,一查才发现,没有gui界面的liunx系统需要装模拟软件才可以!

二、安装Xvfb和python库pyvirtualdisplay、selenium

因为没有GUI,如果我们想使用Chrome/Firefox等浏览去,我们就需要Xvfb和python的pyvirtualdisplay库,给浏览器创造一个运行环境,这样浏览器就能顺利运行了。

1、安装Xvfb

下面来自万能的chatgpt,yyds!


在 CentOS 上安装 Xvfb(虚拟 X 服务器)可以通过以下步骤完成:

  1. 更新系统软件包:
sudo yum update
  1. 安装 Xvfb 和其他依赖包:
sudo yum install -y xorg-x11-server-Xvfb libXfont xorg-x11-fonts* xorg-x11-util*
  1. 配置 Xvfb 服务:创建一个 Xvfb 的 systemd service 文件,使其在系统启动时自动运行。

首先,使用编辑器(如 nano 或 vim)创建一个新的 service 文件:

sudo nano /etc/systemd/system/xvfb.service

然后,将以下内容粘贴到文件中:

[Unit]
Description=Xvfb Service
After=network.target

[Service]
ExecStart=/usr/bin/Xvfb :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset

[Install]
WantedBy=default.target

保存并关闭文件。

  1. 启动和配置 Xvfb 服务:
sudo systemctl daemon-reload
sudo systemctl enable xvfb.service
sudo systemctl start xvfb.service

现在,Xvfb 服务已经在 CentOS 上成功安装并启动了。您可以使用指定的显示号码(这里是 ":99")来运行需要图形显示的应用程序,如 Selenium 等。

请注意,以上步骤假设您正在使用 CentOS 7 或更高版本。如果您使用的是旧版本的 CentOS,请根据实际情况进行适当调整。


配置完后测试一下,没有报错,牛的牛的~



2、安装python库pyvirtualdisplay

这个就很简单了,使用pip3,不要安装错了环境之前没有安装selenium可以在这里顺便安装一下~

pip3 install pyvirtualdisplay
pip3 install selenium

三、配置好后测试

from pyvirtualdisplay import Display
from selenium import webdriver

#因为没有GUI,如果我们想使用Chrome/Firefox等浏览去,我们就需要Xvfb和python的pyvirtualdisplay库,给浏览器创造一个运行环境,这样浏览器就能顺利运行了。


display = Display(visible=0, size=(800, 600))
display.start()
print('123')
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--headless')
options.add_argument('--disable-gpu')

browser = webdriver.Chrome(options=options)
browser.get('http://www.baidu.com')
print(browser.title)

browser.quit()
display.stop()

使用python3运行,如果打印出浏览器标题,表示成功了!其他报错可以参考百度、chatgpt解决


总结

参考:

https://www.php1.cn/detail/Linux_ShangBuShu_54511b23.html

https://www.bing.com/?scope=web&cc=US

标签:chrome,sudo,selenium,chromedriver,Xvfb,liunx,服务器,options
From: https://blog.51cto.com/u_16091079/6553097

相关文章

  • Windows Server操作系统中的DHCP Server Service是一种集成在操作系统中的功能,用于提
    WindowsServer操作系统中的DHCPServerService是一种集成在操作系统中的功能,用于提供DHCP服务器服务。它可以在WindowsServer上设置和管理DHCP服务器,实现自动分配IP地址和其他网络配置信息给连接到网络的设备。DHCPServerService在WindowsServer中提供以下功能和特性:IP地......
  • 服务器与本地资源同步,在ubuntu自建git库,使用nginx远程http访问
    xshell在linux与windows之间传文件虽然方便,但使用git才能真正实现资源同步。为实现服务器与本地资源同步,在ubuntu服务器端自建git库。使用 git-http-backend 搭建git服务的原理都是类似的,主要是利用web服务器(apache/nginx)进行用户认证,并将用户信息传递给CGI程序 ......
  • 宝兰德应用服务器软件与华为云GaussDB完成兼容互认证
    近日,北京宝兰德软件股份有限公司(简称:宝兰德)携手华为云完成宝兰德应用服务器软件9.5(BESApplicationServer9.5)与GaussDB数据库兼容性测试,并获得华为云授予的技术认证书。宝兰德应用服务器软件(华为云GaussDB是华为自主创新研发的分布式关系型数据库,面向金融政企打造了企业级复杂事......
  • 构建 samba 共享文件服务器
    构建samba共享文件服务器拓扑图:推荐步骤:➢创建组名字➢在/var/share目录中建立三个子目录bdqn、benet、accp,/bdqn目录所有用户只有读取权限、/benet目录bob拥有读取权限,tom拥有读取和写入权限、/accp目录只有marry和benet组用户可以读取写入拒绝其他用户访问......
  • 下载中间件实战-Scrapy与Selenium结合
    下载中间件实战-Scrapy与Selenium结合有的页面反爬技术比较高端,一时破解不了,这时我们就是可以考虑使用selenium来降低爬取的难度。问题来了,如何将Scrapy与Selenium结合使用呢?思考的思路: 只是用Selenium来帮助下载数据。因此可以考虑通过下载中间件来处理这块内容。Spider文......
  • 国内常用NTP服务器地址
    一、NTP是什么?NTP是网络时间协议(NetworkTimeProtocol),它用来同步网络设备【如计算机、手机】的时间的协议。二、NTP实现什么目的?目的很简单,就是为了提供准确时间。因为我们的手表、手机、电脑等设备,经常会跑着跑着时间就出现了误差,或快或慢的少几秒,时间长了甚至误差过分钟......
  • 配置vnc远程连接Linux和unix服务器图形界面安装Oracle
    1、配置并开启vnc服务[oracle@localhost~]$vncserverYouwillrequireapasswordtoaccessyourdesktops.Password:---这里要求输入vnc客户端登录的密码并重复Verify:New'localhost.localdomain:2(oracle)'desktopislocalhost.localdo......
  • 全国DNS服务器地址列举
    原文摘自:https://blog.csdn.net/weixin_33670640/article/details/119584535原问作者:bp432按首字母排序:安徽:202.102.199.68(ns.ahwhtel.net.cn)澳门:202.175.3.8(vassun2.macau.ctm.net)保定:202.99.160.68(sjzdns.heinfo.net)202.99.166.4(tsdns.heinfo.net)北京:2......
  • Selenium基础:下拉框操作 06
    *使用select方法方法一:fromselenium.webdriver.support.uiimportSelect方法二:fromselenium.webdriver.support.selectimportSelect选择项的选择,有3种方法:select_by_index(index):通过索引选择select_by_value(value):通过value值选择select_by_visible_text(text):通过......
  • Linux 服务器CPU超高如何快速定位
    Linux服务器CPU超高如何快速定位原创 senfel 架构集结号 2023-02-2411:07 发表于四川收录于合集#故障排查5个前言在生产环境中有时会遇见服务器CPU超高的问题,特别是重大版本发布后如果有内存泄露很容出现CPU超高,严重可能会达到100%。现在我们使用的服务器都是多核......