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

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()

相关文章:

Python selenium

1.搭建环境 1.安装&#xff1a; pip install msedge-selenium-tools 不要使用pip install selenium&#xff0c;我的电脑上没法运行 2.下载驱动 Microsoft Edge WebDriver |Microsoft Edge 开发人员 edge浏览器点设置---关于即可找到版本号&#xff0c;一定要下载对应版…...

Python内置函数next()详解

Python的next()函数是一个内置函数&#xff0c;用于从迭代器中获取下一个元素。如果迭代器耗尽&#xff0c;则抛出StopIteration异常。 函数定义 next()函数的基本语法如下&#xff1a; next(iterator[, default])iterator&#xff1a;一个迭代器对象。default&#xff1a;可…...

初识指针(1)<C语言>

前言 指针是C语言中比较难的一部分&#xff0c;大部分同学对于此部分容易产生“畏难情结”&#xff0c;但是学习好这部分对C语言的深入很大的帮助&#xff0c;所以此篇主要以讲解指针基础为主。 指针概念 变量创建的本质就是在内存中申请空间&#xff0c;找到这个变量就需要地址…...

uniapp使用vconsole调试 兼容App

前言&#xff1a;引入vconsole发现uniapp打出来的包里&#xff0c;看不到vconsole&#xff0c;uniapp开发的h5需要使用vconsole真机调试&#xff0c;如果直接在main.ts引入&#xff0c;打包后整个项目会页面空白&#xff0c;经实验在单个页面引入可解决&#xff0c;以下是解决方…...

论文笔记模版

1. 摘要 1.1 背景 1.2 挑战 1.3 提出新方法 1.4 贡献 2. 引言 2.1 背景&#xff08;引出问题&#xff09; ①介绍大背景&#xff1a; ② 应用场景&#xff1a; ③ 介绍主题&#xff1a; 2.2 引出挑战 一般用图表来展现出我们的挑战&#xff08;直观&#xff0c;解决什…...

docker-本地私有仓库、harbor私有仓库部署与管理

一、本地私有仓库&#xff1a; 1、本地私有仓库简介&#xff1a; docker本地仓库&#xff0c;存放镜像&#xff0c;本地的机器上传和下载&#xff0c;pull/push。 使用私有仓库有许多优点&#xff1a; 节省网络带宽&#xff0c;针对于每个镜像不用每个人都去中央仓库上面去下…...

【Go 语言入门专栏】Go 语言的起源与发展

前言 Go 语言是当下最为流行的编程语言之一&#xff0c;大约在 2020、2021 年左右开始于国内盛行&#xff0c;许多大厂很早就将部分 Java 项目迁移到了 Go&#xff0c;足可看出其在性能方面的优越性。 相信各位都知道&#xff0c;在爬虫业务中&#xff0c;并发是一个关键的需…...

发电机组远程管理,提升管控力,降低运维成本

发电机组是指发电机发动机以及控制系统的总称&#xff0c;用来把发动机提供的动能转化为电能。它通常由动力系统、控制系统、消音系统、减震系统、排气系统组成。发电机组远程管理系统利用物联网技术与PLC远程控制模块集成解决方案&#xff0c;在提高发电机组的运行效率、降低运…...

java将文件压缩打包后进行下载

今天受到一个需求&#xff0c;需要查出文件&#xff0c;然后将文件打包后下载。看了下项目里默认代码有压缩功能&#xff0c;以此修改了下&#xff0c;项目使用了hutool。项目是若依项目 定义zip的数据传输对象&#xff0c;ossId可以是文件表的id Data public class SysOssZi…...

【4/26-4/30】 Arxiv安全类文章速览

4/26 标题: Merchants of Vulnerabilities: How Bug Bounty Programs Benefit Software Vendors 作者: Esther Gal-Or, Muhammad Zia Hydari, Rahul Telang摘要: 软件漏洞允许恶意黑客利用&#xff0c;威胁系统和数据安全。本文研究了激励道德黑客发现并负责任地向软件供应商披…...

活动图与状态图:UML中流程图的精细化表达——专业解析系统动态性与状态变迁

流程图是一种通用的图形表示法&#xff0c;用以展示步骤、决策和循环等流程控制结构。它通常用于描述算法、程序执行流程或业务过程&#xff0c;关注于任务的顺序执行。流程图强调顺序、分支和循环&#xff0c;适用于详细说明具体的处理步骤&#xff0c;图形符号相对基础和通用…...

Easy TCP Analysis提供了四大特性,兼顾了TCP数据包分析入门学习到实战问题排查不同阶段用户对工具的需求

一款兼顾TCP数据包分析入门学习和实战不同阶段用户需求的工具 Easy TCP Analysis是一款在线TCP数据包分析工具&#xff0c;致力于让TCP数据包分析变得跟看聊天记录一样简单&#xff01; Easy TCP Analysis提供了四大特性&#xff0c;兼顾了从入门学习到实战分析不同阶段用户对…...

【2】STM32·FreeRTOS·任务创建和删除

目录 一、任务创建和删除的API函数 1.1、动态创建任务函数 1.2、静态创建任务函数 1.3、任务删除函数 二、任务创建和删除&#xff08;动态方法&#xff09; 三、任务创建和删除&#xff08;静态方法&#xff09; 一、任务创建和删除的API函数 任务的创建和删除本质就是…...

日志审计系统在提高网络安全方面具有哪些重要的作用

随着信息技术的飞速发展&#xff0c;我们正处于一个高度互联、数据驱动的网络时代。在这个时代&#xff0c;日志审计系统作为网络安全和信息管理的重要工具&#xff0c;发挥着至关重要的作用。下面德迅云安全就详细介绍下关于日志审计系统在当今网络时代的重要性。 一、什么是日…...

二维泊松方程(Neumann+Direchliet边界条件)有限元Matlab编程求解|程序源码+说明文本

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…...

13_Scala面向对象编程_伴生对象

文章目录 1.伴生对象1.1 scala的一个性质&#xff0c;scala文件中的类都是公共的&#xff1b;1.2 scala使用object关键字也可以声明对象&#xff1b; 3.关于伴生对象和类4.权限修饰符&#xff0c;scala仅有private;5.伴生对象可以访问伴生类中的私有属性&#xff1b;6.案例7.伴…...

RS485空调系统到BACnet江森楼宇系统的高效整合攻略

智慧城市的每一栋建筑都在追求更高的能效与更佳的居住体验&#xff0c;而这一切的实现离不开强大且灵活的楼宇自动化系统。其中&#xff0c;协议转换网关作为连接不同设备的纽带&#xff0c;扮演着至关重要的角色。本文将以一个典型的商业综合体为例&#xff0c;揭秘BACnet协议…...

Springboot集成Redis操作缓存-06

Redis简介 Redis&#xff08;Remote Dictionary Server&#xff09;&#xff0c;即远程字典服务&#xff0c;是一个开源的、使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 功能特点 数据结构丰富&#…...

【WPF】聊聊WPF中INotifyPropertyChanged [TOC]

聊聊WPF中INotifyPropertyChanged 文章目录 聊聊WPF中INotifyPropertyChanged一、INotifyPropertyChanged接口二、DataContext2.1/DataContext作用2.2/DataContext特性2.3/DataContext实例 三、INotifyPropertyChanged接口的几种实现方式3.1/简单INotifyPropertyChanged绑定3.2…...

SpringBoot Actuator未授权访问漏洞的解决方法

1. 介绍 Spring Boot Actuator 是一个用于监控和管理 Spring Boot 应用程序的功能模块。它提供了一系列生产就绪的功能&#xff0c;帮助你了解应用程序的运行状况&#xff0c;以及在运行时对应用程序进行调整。Actuator 使用了 Spring MVC 来暴露各种 HTTP 或 JMX 端点&#x…...

工程师职场年龄歧视量化调查:从数据看行业偏见与应对策略

1. 项目概述&#xff1a;一次针对工程师职场年龄歧视的量化尝试在科技行业&#xff0c;尤其是工程领域&#xff0c;谈论“年龄”一直是个微妙的话题。大家或多或少都听过一些传闻&#xff1a;某位资深工程师在求职时简历石沉大海&#xff0c;或者团队重组时&#xff0c;第一批被…...

一站式带你了解梨稳定转化体系

梨是我国传统佳果&#xff0c;脆嫩多汁、清甜爽口&#xff0c;无论是鲜食还是加工&#xff0c;都深受大众喜爱。但梨作为木本果树&#xff0c;遗传转化难度大&#xff0c;传统育种周期长达8-10年&#xff0c;且易受基因型限制&#xff0c;难以稳定获得抗病、抗逆、优质高产等优…...

Whisky实战指南:在Apple Silicon Mac上高效运行Windows应用

Whisky实战指南&#xff1a;在Apple Silicon Mac上高效运行Windows应用 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky Whisky是一款专为Apple Silicon Mac设计的现代化Windows应用兼…...

AI智能体持久记忆系统:基于MCP协议与Cloudflare Workers的架构实践

1. 项目概述&#xff1a;一个为AI智能体赋予持久记忆的文明如果你和我一样&#xff0c;每天都在和Claude Code、Cursor这类AI编程助手打交道&#xff0c;那你一定对那个永恒的痛点深有体会&#xff1a;每次开启一个新会话&#xff0c;它都像一张白纸。你花了半小时&#xff0c;…...

ExifToolGUI终极指南:告别繁琐,用图形界面批量管理照片元数据

ExifToolGUI终极指南&#xff1a;告别繁琐&#xff0c;用图形界面批量管理照片元数据 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾面对成百上千张照片&#xff0c;想要批量修改拍摄时间、统一添…...

C语言中的strchr函数

strchr是string.h库中的函数&#xff0c;它的形式为&#xff1a; char * strchr (char * str, int character );功能&#xff1a; 返回一个指针&#xff0c;指向字符在 C 字符串 str 中第一次出现的位置。C 字符串末尾的空字符 \0 被视为字符串的一部分。因此&#xff0c;你也可…...

Parsec VDD虚拟显示器驱动深度解析:5大优化策略与实战应用指南

Parsec VDD虚拟显示器驱动深度解析&#xff1a;5大优化策略与实战应用指南 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd Parsec Virtual Display Driver (VDD) 是一款基于Windo…...

LinkSwift网盘直链下载助手:八大平台高速下载解决方案

LinkSwift网盘直链下载助手&#xff1a;八大平台高速下载解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

数字通信系统核心:从IQ调制到星座图,深入解析PSK/QAM的实现与优化

1. 数字通信系统的核心&#xff1a;IQ调制揭秘 第一次接触IQ调制这个概念时&#xff0c;我也被它绕晕了。什么同相分量、正交分量&#xff0c;听起来就像天书。直到有一天&#xff0c;我在调试无线电设备时突然想通&#xff1a;这不就是把数字信号"画"在旋转的圆盘上…...

深入Logos FPGA的PCB布局:如何针对FBG256、FBG484和LPG封装优化你的设计

深入Logos FPGA的PCB布局&#xff1a;如何针对FBG256、FBG484和LPG封装优化你的设计 在硬件设计领域&#xff0c;FPGA的PCB布局一直是工程师面临的核心挑战之一。特别是当项目需要在性能、成本和尺寸之间寻找平衡点时&#xff0c;封装选择往往成为决定成败的关键因素。Logos系列…...