Python selenium

1.搭建环境

1.安装:

pip install msedge-selenium-tools

不要使用pip install selenium,我的电脑上没法运行

2.下载驱动  

Microsoft Edge WebDriver |Microsoft Edge 开发人员

edge浏览器点设置---关于即可找到版本号,一定要下载对应版本的驱动 

我的电脑是64位的,下载了x64的,但是运行时报错:OSError: [WinError 216] 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者。

下载win32的selenium解决

又报错:ValueError: Timeout value connect was <object object at 0x000001C609CC8630>, but it must be an int, float or None.

python selenium报错ValueError: Timeout value connect was <...>, but it must be an int, float or None._raise valueerror( valueerror: timeout value connec-CSDN博客

python selenium报错ValueError: Timeout value connect was <...>, but it must be an int, float or None._raise valueerror( valueerror: timeout value connec-CSDN博客 

 继续报错:ModuleNotFoundError: No module named 'urllib3.packages.six.moves'
pip show selenium
Name: selenium
Version: 3.141.0
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author: UNKNOWN
Author-email: UNKNOWN
License: Apache 2.0
Location: C:\Users\15269\AppData\Local\Programs\Python\Python312\Lib\site-packages
Requires: urllib3
Required-by: msedge-selenium-tools

重装1.26.12的urllib3解决(我使用的是python3.12)如果还不行就多换几个试试 

测试代码
from msedge.selenium_tools import Edge, EdgeOptionsoptions = EdgeOptions()
options.use_chromium = True
options.add_experimental_option('excludeSwitches',['enable-automation'])  # 开启开发者模式
options.add_argument('--disable-blink-features=AutomationControlled')  # 禁用启用Blink运行时的功能
options.binary_location = r'C:\Program Files (x86)\Microsoft\EdgeCore\113.0.1774.50\msedge.exe'
url = 'https://www.baidu.com/'driver = Edge(options=options, executable_path='./msedgedriver.exe')
driver.get(url)

二、带有用户数据的爬虫参考

以下内容转载自这位大佬的博客:

使用 Selenium 启动的 Chrome 浏览器,默认是无法使用本地数据的,如表单项、密码、Cookies 等。

原因分析

这是由于 Selenium 在启动 Chrome 时,默认将命令行参数 --user-data-dir(该参数用于设置用户数据目录)设为了一个“临时目录”,如下图所示:

在 Selenium 启动的 Chrome 浏览器的地址栏中输出 chrome://version 并回车,就可以打开上图这个界面。

查看默认的用户数据目录的

手动打开一个 Chrome 浏览器,在地址栏中输出 chrome://version 并回车,找到 Profile Path: 后面的路径,去掉最后的 \Default,就是默认的用户数据目录,它一般都是:C:\Users\Your_User_Name\AppData\Local\Google\Chrome\User Data

将默认的用户数据目录设为 Selenium 启动的 Chrome 的用户数据目录

代码如下:

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Serviceoptions = webdriver.ChromeOptions()
options.add_argument(r'user-data-dir=C:\Users\Your_User_Name\AppData\Local\Google\Chrome\User Data')
#  --user-data-dir 前的两个短杠似乎有没有均可browser = webdriver.Chrome(options=options,service=Service()  # 需要将 Chrome 驱动放在此文件的同一目录下
)browser.get('https://mail.163.com/')   # 此处以 163 邮箱为例,因为 163 邮箱的 Cookies 可以在本地保存 30 天。
time.sleep(120)

对于edge浏览器:edge://version/

三、实战应用

stm官网登录

登陆界面网址:登录注册 (stmicroelectronics.cn)

右键检查,找到用户名&密码&登录按钮的路径,并写出相应js代码。之后在控制台测试

document.getElementById("username").value = "你的用户名"
document.getElementById("password").value = "你的密码"
document.querySelector(".an_lan").click() //登录

 完整代码

from msedge.selenium_tools import Edge, EdgeOptionsclass Demo:def __init__(self) -> None:#keep alive为True,即处理完后不会关闭edgeoptions = EdgeOptions()options.use_chromium = Trueoptions.add_experimental_option('excludeSwitches',['enable-automation'])  # 开启开发者模式#用户数据#options.add_argument(r'user-data-dir=C:\Users\15269\AppData\Local\Microsoft\Edge\User Data')options.add_argument('--disable-blink-features=AutomationControlled')  # 禁用启用Blink运行时的功能options.binary_location = r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'self.webdriver = Edge("./msedgedriver.exe", keep_alive=True, options=options)self.login_url = r"https://sso.stmicroelectronics.cn/User/LoginByPassword"self.username = "。。。"self.password = "@。。。"def login(self):payload = f"""document.getElementById("username").value = "{self.username}"document.getElementById("password").value = "{self.password}"document.querySelector(".an_lan").click() //登录"""self.webdriver.get(self.login_url)self.webdriver.execute_script(payload)def run(self):self.login()if __name__ == "__main__":Demo().run()

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

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

相关文章

实践精益理念:精益生产培训助力企业持续增长

在日益激烈的市场竞争中&#xff0c;企业如何寻找持续增长的动力&#xff0c;提升整体创新能力和核心竞争力&#xff1f;张驰咨询通过多年来的深入研究和实践&#xff0c;结合众多企业的实际情况&#xff0c;带来了精益生产培训的全新视角。 在近期举办的一次精益生产培训中&am…

五种算法(BWO、RUN、SO、HO、GWO)求解复杂城市地形下无人机路径规划,可以修改障碍物及起始点(MATLAB)

一、算法介绍 &#xff08;1&#xff09;白鲸优化算法BWO 参考文献&#xff1a;Zhong C, Li G, Meng Z. Beluga whale optimization: A novel nature-inspired metaheuristic algorithm[J]. Knowledge-Based Systems, 2022, 109215. &#xff08;2&#xff09;龙格-库塔优化…

服务器数据恢复—RAID5磁盘阵列两块盘离线的数据恢复过程

服务器故障&#xff1a; 服务器中有一组由多块硬盘组建的raid5磁盘阵列&#xff0c;服务器阵列中2块硬盘先后掉线导致服务器崩溃。 服务器数据恢复过程&#xff1a; 1、将故障服务器中所有磁盘编号后取出&#xff0c;由硬件工程师对掉线的两块磁盘进行物理故障检测&#xff0c…

二层交换机与路由器连通上网实验

华为二层交换机与路由器连通上网实验 二层交换机是一种网络设备&#xff0c;用于在局域网&#xff08;LAN&#xff09;中转发数据帧。它工作在OSI模型的第二层&#xff0c;即数据链路层。二层交换机通过学习和维护MAC地址表&#xff0c;实现了数据的快速转发和广播域的隔离。 实…

java数据结构之数组系统了解

1.数组介绍 数组就是一个存储数据的容器&#xff0c;容器的长度固定、存储元素的数据类型固定。 跟变量加以区分&#xff1a;变量也可以存储数据&#xff0c;但是只能存一个值。当要存的数据比较多的时候&#xff0c;用变量就不方便了。我们就可以使用数组来存储。 1.1数组…

并发编程实现

一、并行编程 1、Parallel 类 Parallel类是System.Threading.Tasks命名空间中的一个重要类&#xff0c;它提供数据并行和任务并行的高级抽象。 For和ForEach Parallel类下的For和ForEach对应着普通的循环和遍历(普通的for和foreach)&#xff0c;但执行时会尝试在多个线程上…

安防视频/视频汇聚系统EasyCVR视频融合云平台助力智能化酒店安防体系的搭建

一、背景需求 2024年“五一”假期&#xff0c;全国文化和旅游市场总体平稳有序。文化和旅游部6日发布数据显示&#xff0c;据文化和旅游部数据中心测算&#xff0c;全国国内旅游出游合计2.95亿人次。“五一”假期县域市场酒店预订订单同比增长68%&#xff0c;而酒店作为一个高…

SpringCloudAlibaba:4.3云原生网关higress的JWT 认证

概述 简介 JWT是一种用于双方之间传递安全信息的简洁的、URL安全的声明规范。 定义了一种简洁的&#xff0c;自包含的方法用于通信双方之间以Json对象的形式安全的传递信息&#xff0c;特别适用于分布式站点的单点登录&#xff08;SSO&#xff09;场景 session认证的缺点 1.安…

简单数据结构——栈和队列1(栈超全)(初始化,销毁,出栈入栈销毁实现,例题运用)

知识特点 类似数据表链表&#xff0c;在逻辑上依次存储&#xff0c;但对比顺序表和链表有所限制&#xff0c;不能随便存储 一定要先掌握顺序表的实现&#xff0c;本人博客有顺序表专栏大家可以自行查看&#xff0c;看懂顺序表专栏之后再来了解栈的实现会更容易懂。 如果还没…

使用DBeaver连接postgreSql提示缺少驱动

重新安装电脑之后用dbeaver链接数据库的时候&#xff0c;链接PG库一直提示缺少驱动&#xff0c;当选择下载驱动的时候又非常非常慢经常失败&#xff0c;尝试了一下更改源然后下载库驱动就非常快了&#xff0c;当然也包括dbeaver的自动更新。 方法&#xff1a;点击菜单栏【窗口…

闲来装个虚拟机Ubuntu24.04和硬盘分区及挂载

简述 最近ubuntu出新版本了&#xff0c;ubuntu24.04&#xff0c; 俗称高贵食蚁兽。5年前进行Android或者linux开发基本是在windows下的虚拟机中进行。目前&#xff0c;虽然物质基础提高了&#xff0c;功能有独立进行编译、代码管理的服务器了。可以通过ssh登录&#xff0c;但是…

Seata之AT 模式的使用

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Seata 是一款开源的…

ChIP-seq染色质图谱检测方法的局限性及改善方式

ChIP-seq是最广泛使用的染色质图谱检测方法&#xff0c;但有很大的局限性&#xff0c;具体表现为&#xff1a; 1.高细胞需求量&#xff1b; 2.低吞吐量&#xff1b; 3.技术困难&#xff1b; 4.高成本&#xff0c;深度测序&#xff1b; 5.数据质量差&#xff0c;变量大 CUT&…

使用CNN或resnet,分别在flower5,flower17,flower102数据集上实现花朵识别分类-附源码-免费

前言 使用cnn和resnet实现了对flower5&#xff0c;flower17&#xff0c;flower102数据集上实现花朵识别分类。也就是6份代码&#xff0c;全部在Gitee仓库里&#xff0c;记得点个start支持谢谢。 本文给出flower17在cnn网络实现&#xff0c;flower102在resnet网络实现的代码。…

docker私有仓库的registry

简介 Docker私有仓库的Registry是一个服务&#xff0c;主要用于存储、管理和分发Docker镜像。具体来说&#xff0c;Registry的功能包括&#xff1a; 存储镜像&#xff1a;Registry提供一个集中的地方来存储Docker镜像&#xff0c;包括镜像的层次结构和元数据。 版本控制&…

基于HSI模型的水下图像增强算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

【数据结构】-- 链表专题

链表的分类 前面我们实现了单链表&#xff0c;单链表只是链表的一种。可以根据以下几个标准来判断链表的类型&#xff1a; 1.单向或者双向 如图所示&#xff0c;单向链表中一个节点的指针域只储存了下一个节点的指针&#xff0c;能通过前一个节点访问后一个节点&#xff0c;无…

【4089】基于小程序实现的互动打卡系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

怎么写毕业论文的? 推荐4个AI工具

写作这件事一直让我们从小学时期就开始头痛&#xff0c;初高中时期800字的作文让我们焦头烂额&#xff0c;一篇作文里用尽了口水话&#xff0c;拼拼凑凑才勉强完成。 大学时期以为可以轻松顺利毕业&#xff0c;结果毕业前的最后一道坎拦住我们的是毕业论文&#xff0c;这玩意不…

短视频矩阵系统源码/saas--总后台端、商户端、代理端、源头开发

短视频矩阵系统源码/saas--总后台端、商户端、代理端、源头开发 搭建短视频矩阵系统源码的交付步骤可以概括为以下几个关键环节&#xff1a; 1. **系统需求分析**&#xff1a;明确系统需要支持的功能&#xff0c;如短视频的上传、存储、播放、分享、评论、点赞等。 2. **技术选…