news 2026/9/7 22:32:09

使用Python实现网页账户的自动登录操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用Python实现网页账户的自动登录操作

自动化办公以及网络数据交互的场景当中, 运用实现网站自动登录能够把效率极其显著地提升上去。紧接下来的这篇章将会依托于库为依据进行呈现, 十分详尽地阐述怎样借助实现网页版的账户自动登录, 此涵盖原理、步骤以及代码详解。文章的末尾处附带完整的实现代码。

一、实现原理

达成百度自动登录的关键所在是借助, 在自动化测试方面的库。它能够模拟浏览器的相关操作, 借此通过编写代码来调控浏览器加载网页, 去定位页面之中的元素, 并且针对这些元素开展操作, 像输入文本, 点击按钮之类的。我们能够借助这个去模拟用户于浏览器里输入用户名以及密码, 接着点击登录按钮的这一历程, 进而达成自动登录该行为的实现。

另外, 鉴于百度登录页面存在可能会有动态加载的内容这种情况而言, 我们还得结合显式等待以及隐式等待, 以此来确保在页面元素加载完毕之后再去进行操作, 防止出现找不到元素的那种错误。

二、准备工作

1)安装必要的库

代码编写开始之前, 要保证库已安装。要是没安装, 可借pip用以下命令来安装:

pip install selenium

2)下载浏览器驱动

得借助浏览器驱动才能够对浏览器实施控制, 就以浏览器为实例来说, 需下载与其所对应的版本, 具体的步骤是这样子的:

要查看浏览器版本, 需先打开这款相关的浏览器, 接着点击处于其上的右上角的三个点, 随后对其继续进行选择, 即选择“帮助”, 然后再对应选择“关于 ”这条路, 最终方能查看到当前所使用的这款浏览器的版本号。

查看浏览器版本号

点开官方下载页面, 从中寻觅与自身浏览器版本相匹配的版本, 依据操作系统去进行对应的压缩包下载此操作。

下载

确定配置驱动路径: 当下载结束之后, 对压缩包予以解压, 接着把解压所得到的可执行文件路径给记录下来, 在后续的代码里要运用该路径去启动浏览器驱动。三、开展代码实现。

1)导入必要的库

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service import time

上述代码, 导入了相关模块, 其中, 有用于控制浏览器的, By, 是用于指定元素定位方式的, 还有用于配置浏览器驱动的。

2)配置浏览器驱动并打开百度登录页面

# 配置 ChromeDriver 路径,需根据实际情况修改 chrome_driver_path = 'D:/Downloads/chromedriver-win64/chromedriver.exe' service = Service(chrome_driver_path) driver = webdriver.Chrome(service=service) # 打开百度登录页面 driver.get('https://passport.baidu.com/v2/?login') # 等待页面加载 time.sleep(2)

在这段代码里头, 我们明确了的路径, 并且运用对象来开展配置, 接着借助.()去启动浏览器, 最终利用.get()方法把百度登录页面给打开。

3)切换到用户名密码登录方式

因为百度登录页面默认呈现的是扫码登录界面, 所以我们得先转变到用户名密码登录方式。

# 切换到用户名密码登录方式 try: switch_button = driver.find_element(By.ID, 'TANGRAM__PSP_3__footerULoginBtn') switch_button.click() time.sleep(1) except Exception as e: print(f"切换到用户名密码登录失败: {e}")

这里进行模拟, 用户点击“用户名登录”这一按钮, 从而切换到用户名密码登录界面。哪一个“用户名登录”所对应的 ID 呢, 可以通过网页源码查找出来。

“用户名登录”对应的 ID

百度账户用户名密码登录界面

4)输入用户名和密码

# 输入用户名和密码,需替换为实际的用户名和密码 username = '*************' password = '*************' try: username_input = driver.find_element(By.ID, 'TANGRAM__PSP_3__userName') password_input = driver.find_element(By.ID, 'TANGRAM__PSP_3__password') username_input.send_keys(username) password_input.send_keys(password) except Exception as e: print(f"输入用户名和密码失败: {e}")

查找用户名输入框元素, 其ID是“Name”,查找密码输入框元素, 其ID是“word”。之后运用()方法, 分别往用户名输入框输入内容, 往密码输入框输入内容。

查找 ID

5)点击登录按钮

# 点击登录按钮 try: login_button = driver.find_element(By.ID, 'TANGRAM__PSP_3__submit') login_button.click() except Exception as e: print(f"点击登录按钮失败: {e}")

先寻得登录按钮元素, 该元素对应的ID是“it”, 此后借由click()方法来达成登录按钮的点击行为。

6)等待结果并关闭浏览器

# 等待一段时间查看结果 time.sleep(5) # 关闭浏览器 driver.quit()

等候 5 秒钟, 从而用以观察登录的结果, 最终借助.quit()把浏览器关闭。

四、下载版本要与当下正在用的浏览器版本相匹配, 这是由注意事项驱动的版本匹配要求, 不然也许没办法正常开启浏览器。用户名以及密码的安全, 在实际运用时, 别把用户名和密码直接写进代码里, 能够考虑采用别的安全方式来实施存储与读取, 以此防止信息泄露。百度登录页面的结构会有变化的可能性, 这种变化可能致使元素的ID、类名等定位信息失去效用。要是出现找不到元素的错误情况, 要及时核查页面结构, 并且更新代码当中的元素定位方式。

依照上述步骤, 我们达成了借助 达成百度用户名密码自动登录的功能。此项技术不但能够用于百度登录, 也能够延伸至其他支持用户名密码登录的网站, 为自动化操作创造了更多可能性。

五、完整实现代码

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service import time # 配置 ChromeDriver 路径,需根据实际情况修改 chrome_driver_path = 'D:/Downloads/chromedriver-win64/chromedriver.exe' service = Service(chrome_driver_path) driver = webdriver.Chrome(service=service) # 打开百度登录页面 driver.get('https://passport.baidu.com/v2/?login') # 等待页面加载 time.sleep(2) # 切换到用户名密码登录方式 try: switch_button = driver.find_element(By.ID, 'TANGRAM__PSP_3__footerULoginBtn') switch_button.click() time.sleep(1) except Exception as e: print(f"切换到用户名密码登录失败: {e}") # 输入用户名和密码,需替换为实际的用户名和密码 username = '**************' password = '**************' try: username_input = driver.find_element(By.ID, 'TANGRAM__PSP_3__userName') password_input = driver.find_element(By.ID, 'TANGRAM__PSP_3__password') username_input.send_keys(username) password_input.send_keys(password) except Exception as e: print(f"输入用户名和密码失败: {e}") # 点击登录按钮 try: login_button = driver.find_element(By.ID, 'TANGRAM__PSP_3__submit') login_button.click() except Exception as e: print(f"点击登录按钮失败: {e}") # 等待一段时间查看结果 time.sleep(5) # 关闭浏览器 driver.quit()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 22:31:54

2000+例动物MRI验证的全自动卒中影像分析流程全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 22:30:29

WordPress主题选择与优化全指南

1. WordPress主题选择的重要性与核心考量 对于任何使用WordPress建站的用户来说,主题选择都是最关键的决策之一。一个优质的主题不仅决定了网站的外观和用户体验,更直接影响着SEO表现、加载速度、安全性和后续扩展性。根据我多年建站经验,主题…

作者头像 李华
网站建设 2026/9/7 22:27:46

Chaterm:用自然语言指挥Linux服务器的AI运维副驾驶

最近几个月,我在自己的服务器上做了一件挺“偷懒”的事:装了一个叫 Chaterm 的开源项目,让我能用自然语言直接指挥 Linux 服务器。一开始我也觉得这就是个“给命令行套 AI 皮肤”的玩具,但用了一段时间之后,我发现它确…

作者头像 李华
网站建设 2026/9/7 22:26:31

数字编号系统设计原理与工业应用实践

1. 项目概述:数字编号背后的意义探索 在数字化时代,数字串常被用作项目代号或标识符。像"3698878"这样的数字组合,虽然表面看似随机,但往往蕴含着特定的编码逻辑或项目分类体系。作为从业十余年的技术文档工程师&#x…

作者头像 李华
网站建设 2026/9/7 22:25:25

RS 2kW UHF广播功放拆解:射频设计、热设计与保护逻辑全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 22:23:41

集成运算放大器例题详解:从虚短虚断到反相同相电路计算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华