前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在多平台(win/mac/linux)上安装webdriver并使用selenium

如何在多平台(win/mac/linux)上安装webdriver并使用selenium

作者头像
renhai
发布2023-11-24 17:11:47
8850
发布2023-11-24 17:11:47
举报

由于微信公众号不能同步修改,点击底部阅读原文可以获取本文的最新版本。

目录

  • 一、我们需要先安装chrome浏览器
  • 二、安装chromedriver
    • 1.手动安装
    • 2.自动安装
  • 三、Codespace介绍
    • codespace中使用selenium
    • 在树莓派等arm64架构的Ubuntu系统中使用selenium

一、我们需要先安装chrome浏览器

windows和mac系统正常安装,Ubuntu系统请按以下步骤操作:

更新你的软件包列表:

这是确保你的软件包列表是最新的,这样当你尝试安装软件包时,APT 能够找到它们。终端中运行:

代码语言:javascript
复制
sudo apt update && sudo apt upgrade -y

手动安装依赖:

安装以下依赖包:

代码语言:javascript
复制
sudo apt install fonts-liberation libu2f-udev libvulkan1 xdg-utils

如果其中的某个包无法安装,你可能需要查找替代的包或添加其他的软件源。

再次尝试安装 Chrome:

代码语言:javascript
复制
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
  ``

二、安装chromedriver

1.手动安装

Selenium 需要 WebDriver 驱动程序来控制浏览器。你需要下载与你的浏览器版本相匹配的 WebDriver。例如,如果你使用 Chrome,你需要下载对应你chrome版本的 ChromeDriver。

ChromeDriver下载地址:https://sites.google.com/chromium.org/driver/downloads?authuser=0

2.自动安装

1)方法一:selenium各版本通用的方法:使用webdriver_manager[1]。
代码语言:javascript
复制
pip install webdriver-manager
代码语言:javascript
复制
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
代码语言:javascript
复制
# selenium 4 
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

测试:

代码语言:javascript
复制
# 导航到百度主页
driver.get("https://www.baidu.com")

# 打印标题信息
print(driver.title)

# 关闭浏览器
driver.quit()

更多说明见仓库主页的说明文件。

2)方法二:高版本selenium内置了Selenium Manager

如果你使用的是较新的 Selenium 版本(例如 v4.12.0),则不必担心手动下载 chromedriver,因为 Selenium 的新内置工具 [Selenium Manager 会自动为你下载并管理驱动程序](https://stackoverflow.com/questions/77111127/how-can-we-download-chromedriver-117#:~:text=Suggesstion%3A Having said the above%2C,can be as simple as "Selenium Manager 会自动为你下载并管理驱动程序"),所以不用手动下载webdriver了,运行代码测试:

代码语言:javascript
复制
from selenium import webdriver

# 创建一个新的 Chrome 会话
driver = webdriver.Chrome()

# 导航到百度主页
driver.get("https://www.baidu.com")

# 打印标题信息
print(driver.title)

# 关闭浏览器
driver.quit()

三、Codespace介绍

Codespace[2]是一个代码空间是托管在云中的开发环境。,创建的每个 codespace 都由 GitHub 托管在虚拟机上运行的 Docker 容器中,Github用户每月都有免费额度可以使用,可以点击GitHub Codespaces 快速入门[3]。如果我们能在codespace中运行selenium岂不是每月可薅羊毛,而且自带访问国外网站功能,我们又可以不用访问国外网站直连codespace。

Codespace界面

codespace中如何使用selenium呢?

直接在python程序中运行selenium相关代码是失败的,会报错**AttributeError: 'NoneType' object has no attribute 'split'**。原因是默认没有安装chrome浏览器,那当然无法运行基于chrome的chromedriver。

codespace本身是amd64架构的ubuntu系统,使用selenium需要使用下列方法安装chrome浏览器:

这是确保你的软件包列表是最新的,这样当你尝试安装软件包时,APT 能够找到它们。终端中运行:

1.更新你的软件包列表

sudo apt update && sudo apt upgrade -y

2. 手动安装依赖

代码语言:javascript
复制
# 安装以下依赖包:
sudo apt install fonts-liberation libu2f-udev libvulkan1 xdg-utils

如果其中的某个包无法安装,你可能需要查找替代的包或添加其他的软件源。

3.安装 Chrome:

代码语言:javascript
复制
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

在树莓派等arm64架构的Ubuntu系统中使用selenium:

有很多人有自己的服务器,但是是arm架构的,比如树莓派:

树莓派5

当然也可以跑python程序,运行selenium,但是流程稍有区别:

需要安装chromium和chromium-browser,依次运行下列命令:

代码语言:javascript
复制
sudo apt update && sudo apt upgrade -y
sudo apt install fonts-liberation libu2f-udev libvulkan1 xdg-utils -y
sudo apt-get install chromium-chromedriver
sudo apt-get install chromium-browser

初始化浏览器有区别:

1)因为我们已经下载了chromium和chromium-chromedriver,我们先验证他们的位置和版本:

  • 使用whereis <app>命令可以找到chromium-chromedriver和chromium的位置: whereis chromium whereis chromedriver 分别输出/snap/bin/chromium/usr/bin/chromedriver
  • 使用<app> --version确定其版本: chromium --version chromedriver --version 分别输出::Chromium 118.0.5993.70 snapChromeDriver 118.0.5993.70

在python代码中指定浏览器驱动的执行地址:

代码语言:javascript
复制
from selenium.webdriver.chrome.service import Service
service = Service("/usr/bin/chromedriver") # seleiunm4版本使用Service指定浏览器地址
driver = webdriver.Chrome(service=service, options=options)

参考资料[1]

webdriver_manager: https://github.com/SergeyPirogov/webdriver_manager

[2]

Codespace: https://docs.github.com/en/codespaces

[3]

GitHub Codespaces 快速入门: https://docs.github.com/zh/codespaces/getting-started/quickstart

[4]

我的博客: https://cdn.renhai-lab.tech/

[5]

我的GITHUB: https://github.com/renhai-lab

[6]

我的GITEE: https://gitee.com/renhai-lab

[7]

我的知乎: https://www.zhihu.com/people/Ing_ideas

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 renhailab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、我们需要先安装chrome浏览器
  • 二、安装chromedriver
    • 1.手动安装
      • 2.自动安装
        • 1)方法一:selenium各版本通用的方法:使用webdriver_manager[1]。
        • 2)方法二:高版本selenium内置了Selenium Manager
    • 三、Codespace介绍
      • codespace中如何使用selenium呢?
        • 在树莓派等arm64架构的Ubuntu系统中使用selenium:
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档