安装Selenium

安装Selenium

【0】引言

​ 由于sleenium4.1.0需要python3.7以上方可支持,请注意自己的python版本。

【1】使用Pycharm安装

  • 使用 快捷键 Ctrl + Alt + S

在这里插入图片描述

image-20240401170441034

【2】使用 pip 安装

  • Python3.x安装后就默认就会有pip(pip.exe默认在python的Scripts路径下),
  • 打开 cmd,使用pip安装。
  • 由于sleenium4.1.0需要python3.7以上方可支持,请注意自己的python版本。
# pip install Seleium
  • 安装selenium指定版本

# pip install selenium==3.14.0
  • 首次安装会有进度条,而且装出来是多个包(依赖于其他第三方库)。
  • 如果安装慢(默认连接官网),可以指定国内源。
  • 浏览器下载selenium chrome下载网址
#  pip install selenium -i https://mirrors.aliyun.com/pypi/simple/

【3】安装chrome驱动

chrome驱动地址

  • http://chromedriver.storage.googleapis.com/index.html
  • 或者
  • Chrome for Testing availability (googlechromelabs.github.io)
  • 建议win64位
  • 在把你下载的驱动程序下载解压放在Python解释器的文件夹就可以了

image-20240401195818166

image-20240401195751611

【4】测试驱动

# 导入模块
from selenium import webdriver# 指定绝对路径的方式(可选)
browser = webdriver.Chrome()# 让浏览器访问网页
browser.get("https://www.baidu.com")

【1】设置Chrome启动参数

# 导入模块
from selenium import webdriver
import time# 指定绝对路径的方式(可选)
browser = webdriver.Chrome()
# 让浏览器访问网页
browser.get("https://www.baidu.com")# 创建浏览器对象,指定配置参数
options = webdriver.ChromeOptions()
options.add_argument('--headless')  # 开启无界面模式
options.add_argument('--disable-gpu')  # 禁用gpu
# 实例化带有配置对象的driver对象
browser = webdriver.Chrome()# 保存截图调试
browser.save_screenshot('screenshot.png')# 延迟进入浏览器页面
time.sleep(5)# 关闭浏览器
browser.close()

image-20240401204112309

【 5 】edge浏览器

Supported Browsers | SeleniumSelenium Web自动化测试工具

​ 使用Selenium与Microsoft Edge浏览器进行自动化测试或爬虫开发是相对简单的。以下是一些基本步骤:

  1. 安装Selenium: 首先,确保你已经安装了Selenium库。你可以使用pip来安装Selenium:

    # pip install selenium
    
  2. 下载Edge WebDriver: 与其他浏览器一样,Edge浏览器也需要一个WebDriver来与Selenium进行通信。你需要下载与你的Edge浏览器版本相匹配的WebDriver。你可以在Microsoft Edge WebDriver下载页面找到适合你的Edge浏览器版本的WebDriver。

image-20240409090526870

image-20240409090436924

  • 设置WebDriver路径: 在你的Python脚本中,需要指定WebDriver的路径。你可以通过设置WebDriver的路径来告诉Selenium在哪里找到Edge浏览器的WebDriver。
from selenium import webdriver
# 导入标签定位工具
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.service import Service
import time# 启动Edge浏览器# 设置 Edge 驱动程序的路径
driver_path = r'C:\Users\小白\PycharmProjects\pythonProject2\ni1\msedgedriver.exe'
# 创建一个 EdgeDriver 的 Service 对象
service = Service(driver_path)
# 使用当前目录下的Edge驱动程序初始化WebDriver对象
driver = webdriver.Edge(service=service)

​ 请确保将 path_to_your_edge_webdriver 替换为你实际下载的Edge WebDriver的路径。

  • 使用WebDriver进行操作:一旦你设置了WebDriver的路径并创建了WebDriver实例,你就可以使用Selenium的WebDriver来执行各种操作,例如打开网页、查找元素、模拟用户操作等等。
# 打开网页
driver.get("https://www.jsrank.cn/index.html")
# driver.get('https://vip.biancheng.net/register.php')# 屏幕最大
driver.maximize_window()# 等待一段时间
time.sleep(2)# 通过元素的 Class 属性进行定位
class_name = element = driver.find_element(By.CLASS_NAME, 'header').text
print(class_name)
# 综合 科技 娱乐 社区 购物 财经 开发 校务 报刊 热点资讯# 通过元素的 ID 属性进行定位
ID = driver.find_element(By.ID, 'regbox')
print(ID)
# <selenium.webdriver.remote.webelement.WebElement (session="ad44a579fb522248cf88bdd13a2f54e3",
# element="f.537DE79A6BB2F55B2759F2DFFCC6F0CA.d.0FA0C5957077950BD0F1A3D1BF5F92F2.e.32")># 通过标签名进行定位
div = driver.find_elements(By.TAG_NAME, 'div')
print(div)
# [<selenium.webdriver.remote.webelement.WebElement (session="e4492d752e6b8da3cfd609afcfbccdae",
# element="f.3B12F351523F220A288B95A2C4D01859.d.B20600EBF051C913695EA58BA9CB4C8C.e.32")>,# Link 文字 使用 By.PARTIAL_LINK_TEXT 定位链接文本包含 "抖音热搜" 的链接元素
link = driver.find_element(By.LINK_TEXT,'微博热榜').text
print(link) # 微博热榜# 2. 使用 By.PARTIAL_LINK_TEXT 定位链接文本包含 "抖音热搜" 的链接元素
element_partial_link_text = driver.find_element(By.PARTIAL_LINK_TEXT, '抖音热搜')
print("使用 By.PARTIAL_LINK_TEXT 定位到的元素:", element_partial_link_text)# 3. 使用 By.XPATH 定位版权声明的文本元素
element_xpath = driver.find_element(By.XPATH, '//div[@class="copyright"]')
print("使用 By.XPATH 定位到的元素:", element_xpath.text)
# 使用 By.XPATH 定位到的元素: 长沙艾特米文化传播有限公司 版权所有 Copyright © 2021.All rights reserved  湘ICP备2023007990号-2# 4. 使用 By.CSS_SELECTOR 定位友情链接区域的 div 元素
element_css_selector = driver.find_element(By.CSS_SELECTOR, 'div.slider')
print("使用 By.CSS_SELECTOR 定位到的元素:", element_css_selector)
# 使用 By.CSS_SELECTOR 定位到的元素: <selenium.webdriver.remote.webelement.WebElement (session="39726edd1aa39980fa6cde954badc541",
# element="f.B1C654BA4808D1AA32F9030DC93C7165.d.187CC1011407A47EF6446A2E60BA9DD5.e.588")># 关闭浏览器
driver.close()

CC1011407A47EF6446A2E60BA9DD5.e.588")>

关闭浏览器

driver.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE2版本的仿微信通讯录侧滑列表

<template><!-- Vue模板部分 --><div><div v-for"(group, index) in groupedArray" :key"index" ref"indexcatch"><h2>{{ letter[index] }}</h2><ul><li v-for"item in group" :key&quo…

Notepad++使用SFTP连接虚拟机编辑文档

一.前言 当我们在虚拟机中使用vim编辑有时候不太方便&#xff0c;可以使用远程工具连接进行编辑。 常用的远程连接编辑方式有 vscode下载remote-ssh插件notepad下载nppftp插件finallshell中可以直接打开文件编辑xftp软件 根据个人习惯去选择使用即可。 这里分享一下notepa…

华为OD机试真题-模拟目录管理-2024年OD统一考试(C卷D卷)

题目描述: 实现一个模拟目录管理功能的软件,输入一个命令序列,输出最后一条命令运行结果。 支持命令: 1)创建目录命令:mkdir 目录名称,如mkdir abc为在当前目录创建abc目录,如果已存在同名目录则不执行任何操作。此命令无输出。 2)进入目录命令:cd 目录名称, 如cd …

VUE-配置-流程

VUE-配置-流程 ---1---.安装 NVM: ---2---.用NVM:安装node.js &#xff1a; 修改源&#xff1a; nvm root 命令&#xff0c;可以查看nvm的安装根路径在那个文件夹 root地址&#xff0c;找到setting.txt文件并打开 复制粘贴以下代码&#xff0c; 保存完成nvm源修改&#xff…

模型训练时报错Failed to allocate 12192768 bytes in function ‘cv::OutOfMemoryError‘

目录 报错信息&#xff1a; 查找网上解决方法&#xff1a; 改进思路&#xff1a; 改进方法&#xff1a; 报错信息&#xff1a; D:\Programs\miniconda3\envs\python311\python.exe D:\python\project\VisDrone2019-DET-MOT\train.py Ultralytics YOLOv8.1.9 &#x1f680…

php 获取网页数据

PHP preg_match_all() 函数 | 菜鸟教程 $arr preg_match_all(/<li>(.*)<\/li>/U,$file1,$mat);$arr $mat[0];

Java设计模式_适配器模式

基础 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许接口不兼容的类能够一起工作。适配器模式通过创建一个包装类来实现这种兼容性&#xff0c;这个包装类包含了需要的目标接口&#xff0c;并持有一个适配者对象&#xff0c;以便进…

【Linux】gdb的简单使用

文章目录 一、gdb是什么&#xff1f;二、使用说明1. 安装2. 注意事项3. 常用调试指令3.1 gdb3.2 l3.3 r3.4 n3.5 s3.6 b3.7 info b3.8 finish3.9 p3.10 set var3.11 c3.12 d breakpoints3.13 d n3.14 disable/enable breakpoints3.15 disable/enable n3.16 info b3.17 display …

Supervisor答疑

引言 supervisor可以管理多个进程&#xff0c;安装也比较简单&#xff0c;可以使用apt或者是pip。 推荐使用apt安装。 问题 pip卸载问题 一开始的时候&#xff0c;这个机器并不是我安装的&#xff0c;但是能从pip列表中发现已安装&#xff0c; 但用pip卸载的时候&#xff0…

复习python函数

复习python函数 1.对函数的理解函数的传递方式返回值 return可通过help()函数查看函数说明作用域 2.不定长参数3.递归4.高阶函数将函数作为参数传递将函数作为返回值返回 5.匿名函数6.装饰器 1.对函数的理解 函数可以用来保存一些可执行的代码&#xff0c;并且可以在需要时&am…

macOS - OpenXSpell

文章目录 OpenXSpell、Xspell、OpenSpell使用 Xspell 本文翻译自&#xff1a;http://openxspell.sourceforge.net/ openxspell 源码&#xff1a;https://sourceforge.net/projects/openxspell/ OpenXSpell、Xspell、OpenSpell OpenXSpell 是 Mac 上的开源拼写检查工具。 从 OS…

如何给word中的拼音加声调?分享3个方法

一&#xff0c;前言 在Word文档中标注拼音声调&#xff0c;是许多人在处理中文文档时经常需要面对的问题。对于不熟悉拼音的人来说&#xff0c;这可能会是一个挑战。但是&#xff0c;通过掌握一些简单的步骤和技巧&#xff0c;我们可以轻松地在Word文档中标注拼音声调。 二&a…

wsl2 中docker安装完毕后无法正常启动

wsl2 中docker安装完毕后无法正常启动 1、背景2、目标3、环境4、原因4、操作5.1、查看配置5.2、 切换配置5.3、启动docker5.4、验证docker 1、背景 在win10中安装wsl2体验linux操作系统&#xff0c;按照docker官网步骤安装&#xff0c;安装完毕后面提示 $ docker ps Cannot co…

开源模型应用落地-LangChain高阶-集成vllm-QWen1.5(一)

一、前言 通过langchain框架调用本地模型,使得用户可以直接提出问题或发送指令,而无需担心具体的步骤或流程。vLLM是一个快速且易于使用的LLM推理和服务库。通过两者的结合,可以更好地处理对话,提供更智能、更准确的响应,从而提高对话系统的性能和用户体验。 二、术语 2.…

笨蛋学C++【C++基础第六弹】

C基础第六弹 C面向对象1.C类 & 对象1.1C类定义1.2C对象1.3访问数据成员1.4类成员函数1.5类访问修饰符公有public成员私有private成员受保护protected成员继承中的特点 1.6构造函数 & 析构函数类的构造函数带参数的构造函数使用初始化列表来初始化字段类的析构函数 1.7拷…

【软件工程中的螺旋模型】

文章目录 一、什么是螺旋模型&#xff1f;二、螺旋模型的工作流程1. 计划阶段2. 需求分析阶段3. 设计阶段4. 实施阶段5. 验证与确认阶段6. 进化阶段 三、螺旋模型的优点四、螺旋模型的缺点 一、什么是螺旋模型&#xff1f; 螺旋模型是一种风险驱动的软件开发过程模型&#xff…

云计算中的过度授权:安全隐患与应对策略

云计算凭借其弹性、可扩展等优势&#xff0c;已经成为诸多企业组织拓展业务的重要基础设施之一。然而&#xff0c;与传统IT架构相比&#xff0c;云计算环境的安全管理也面临着新的挑战。过度授权 (Overprivileging) 便是云安全领域亟待解决的主要问题之一&#xff0c;本文将带领…

为什么我的 Mac 运行缓慢以及如何使用CleanMyMac X修复它

近些年伴随着苹果生态的蓬勃发展&#xff0c;越来越多的用户开始尝试接触Mac电脑。然而很多人上手Mac后会发现&#xff0c;它的使用逻辑与Windows存在很多不同&#xff0c;而且随着使用时间的增加&#xff0c;一些奇奇怪怪的文件也会占据有限的磁盘空间&#xff0c;进而影响使用…

Linux笔记之more命令分页显示内容

Linux笔记之more命令分页显示内容 code review! —— 2024-04-20 在 Unix 和类 Unix 操作系统中&#xff08;如 Linux、macOS&#xff09;&#xff0c;more 命令是一个用于分页显示文本文件内容的工具。其基本功能是将长文本分割成逐页显示&#xff0c;用户可以逐页浏览而…

iOS 将字符串分割成单个字符| 字符串转成数组

iOS开发中我们常常需要对字符串进行出去,例如分割,通常都是有个参照物进行分割 例如: https://www.xxx.xxx?namezhangshan iOS需要取出zhangsan的值,就需要用参照物“name”进行分割,右边为张三,左边为其他字符串 OC自带的分割api是 componentsSeparatedByString:"&qu…