当前位置: 首页 > news >正文

ubuntu安装selenium

文章目录

  • 一、前言
  • 二、安装
    • 1.lunix下的pip换源
    • 2.安装selenium
    • 3.更新ubuntu
    • 4.安装谷歌浏览器
    • 5.安装chromedriver
  • 三、测试


一、前言

使用 selenium 的前提是 下载并安装一款 selenium 支持的浏览器浏览器驱动,并且二者版本要一致,我这里安装的是 chrome 和 chromedriver


二、安装

1.lunix下的pip换源

python -m pip install -U pip
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

2.安装selenium

pip install selenium

3.更新ubuntu

apt --fix-broken -y install
apt-get update
apt-get upgrade

4.安装谷歌浏览器

  1. 访问官网 https://www.google.cn/chrome/ 下载chrome
  2. 将页面拖至底部→其他平台→Linux
    在这里插入图片描述
  3. 选择 .deb 文件→接收并安装
    在这里插入图片描述
  4. 服务器创建 /ps/chrome 目录,将 .deb 文件上传至目录下
# 创建目录
mkdir -p /ps/chrome
# 手动上传 .deb 文件

  1. 安装 chrome
# 进入目录
cd /ps/chrome
# 安装依赖
apt-get -y install libxss1 libappindicator1 libindicator7
# 安装浏览器
dpkg -i google-chrome*.deb
# 查看版本
google-chrome --version 
# Google Chrome 101.0.4951.64 

5.安装chromedriver

  1. 根据上一步返回的 chrome 版本下载同版本的 chromedriver
    访问国内镜像 https://registry.npmmirror.com/binary.html?path=chromedriver/ 下载
    在这里插入图片描述

  2. 同样上传到 /ps/chrome 目录下

  3. 安装chromedriver

# 安装unzip
apt-get install unzip
# 解压
unzip chromedriver_linux64.zip
# 移动并创建软连接到默认路径,后续启动selenium时就不需要指定chromedriver的路径了
mv chromedriver /usr/local/share/chromedriver
ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

三、测试

创建测试文件 test_selenium.py

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options


if __name__ == '__main__':
    
    # 加载谷歌浏览器驱动
    chrome_options = Options()
    # linux下运行记得加上这些参数 ----------------------------
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--disable-dev-shm-usage')
    # -----------------------------------------------------
    driver = webdriver.Chrome(options=chrome_options)
    # 打开百度首页
    driver.get('https://www.baidu.com/')

    # 获取百度导航栏中的文本
    xp = '//*[@id="s-top-left"]/a'
    nav_list = [elm.get_attribute('text') for elm in driver.find_elements(by=By.XPATH, value=xp)]
    print(nav_list)
    # ['新闻', 'hao123', '地图', '贴吧', '视频', '图片', '网盘']

run一下

python test_selenium.py

在这里插入图片描述

相关文章:

  • React脚手架工具创建项目的详细介绍
  • 26_TokenMongodb
  • 【工具】使用 sealos 部署 k8s 集群
  • LeetCode 每日一题 2022/9/19-2022/9/25
  • T1046判断一个数能否同时被3和5整除 (信息学一本通C++)
  • Canal + MySQL + Zookeeper + Kafka 数据实时同步
  • 我们如何一键将录音转换成文字?
  • 给计算机专业新生的一些学习建议
  • Java处理时间格式CST和GMT转换
  • VUE之组合式API
  • WebMagic
  • 梧桐树在售的金玉满堂增额终身寿险历久弥新,持续补充养老现金流
  • LDR6035 PD单USB-C口可充放电OTG协议芯片特点
  • php案例 解决cookie失效后使用session的问题
  • 远程访问服务器jupyter notebook
  • [deviceone开发]-do_Webview的基本示例
  • 3.7、@ResponseBody 和 @RestController
  • ES6语法详解(一)
  • fetch 从初识到应用
  • Flannel解读
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript新鲜事·第5期
  • leetcode386. Lexicographical Numbers
  • MySQL几个简单SQL的优化
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • node 版本过低
  • node学习系列之简单文件上传
  • PHP变量
  • Python学习笔记 字符串拼接
  • Vim Clutch | 面向脚踏板编程……
  • WePY 在小程序性能调优上做出的探究
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 给初学者:JavaScript 中数组操作注意点
  • 关于Flux,Vuex,Redux的思考
  • 简单基于spring的redis配置(单机和集群模式)
  • 模型微调
  • 译自由幺半群
  • 在weex里面使用chart图表
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (1)(1.11) SiK Radio v2(一)
  • (11)MSP430F5529 定时器B
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • ***测试-HTTP方法
  • .gitignore文件—git忽略文件
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 发送邮件
  • .NET 设计一套高性能的弱事件机制
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .net项目IIS、VS 附加进程调试