python linux下运行selenium

本文讲述了 Selenium如何在LInux环境中运行 分为三个部分 环境部署、示例(有界面和无界面)、错误处理

环境部署

安装浏览器
yum install [https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm](https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm)
检查chrome的版本
google-chrome --version
安装依赖
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y

最好切换到你当前项目的目录中进行下载  这样可以明确的找到下载后的驱动包 便于解压
wget [https://npm.taobao.org/mirrors/chromedriver/{这里是对应chrome浏览器的版本}/chromedriver_linux64.zip](https://npm.taobao.org/mirrors/chromedriver/{这里是对应chrome浏览器的版本}/chromedriver_linux64.zip)

解压
yum install -y unzip zip
# 首先确定路径 如果已经在项目路径下则使用
unzip xxxx.zip
# 如想解压到其他目录
unzip xxx.zip /data/xxx/xxx/xxx
chromedriver --version 查看版本与浏览器版本是否一致

chmod 777 chromedriver  修改执行权限
cp chromedriver /usr/bin
pip install selenium
安装 # 如果不想使用无头浏览器的情况下 安装下方软件  如在Selenium配置中已经设置了无头浏览器 则不用下载
yum install Xvfb   # Xvfb 实现了x11显示服务协议  所以可以在无显示器界面进行虚拟处一个显示器服务
pip install pyvirtualdisplay  # 一个python用于操作Xvfb的库


示例1:模拟Linux下 打开浏览器

from pyvirtualdisplay import Display
from selenium import webdriver
# 这里是为了模拟浏览器有界面的情况下, 如果是无界面的 看下一条示例
display = Display(visible=False, size=(800, 600))
                display.start()
# 在linux下 最好可以在当前根目录下创建一个tools或者driver_tools目录 
#将下载好的driver驱动程序放在该目录下并在运行时指定驱动程序位置 这样可以有效减少报错 例如:
							#driver =webdriver.Chrome(executable_path=r'/tools/chromedriver.exe')
driver= webdriver.Chrome()
driver.get(url)

print(driver.title())
driver.quit()

示例2:无头模式

from selenium import webdriver
opt = webdriver.ChromeOptions()
opt.add_argument("--headless")
driver= webdriver.Chrome(executable_path=r'/tools/chromedriver.exe,chrome_options=opt)
driver.get(url)
print(driver.title())
driver.quit()

有界面下异常处理:

当你的程序以有界面在Linux上运行的时间久了 出现了卡顿的情况 并且你发现在display.start()运行完以后就不在向下进行了 那么你可以向下看

rpm -qa|grep xorg-x11-server-extra   #首先执行该命令 如果出现安装  那么等待该方法安装完成后 在次进行尝试 如果不行 继续向下执行命令
ps -aux|grep Xvfb   # 执行该命令查询当前Linux服务下 是否出现了大量未被杀掉的僵尸进程 如果有 则执行下个命令
killall 或者pkill Xvfb   # 然后再次启动即可
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值