zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python笔记之自动登录实现

Python笔记自动 实现 登录
2023-06-13 09:17:16 时间

本文章仅介绍如何通过python实现自动化登陆网页功能,

欢迎访问公众号:通信行业搬砖工

一、安装selenium

Selenium是一个WEB自动化测试工具,它运行时会直接实例化出一个浏览器,完全模拟用户的操作,比如点击链接、输入表单,点击按钮提交等。所以我们使用它可以很方便的来登录网站和QQ空间。

pip install selenium

二、安装浏览器驱动Chromedriver

一开始测试报错,并且Chrome浏览器提示:请停用以开发者模式运行的扩展程序,网址输入框中只显示:data;,如下图:

这个问题是由于因为浏览器驱动Chromedriver和Chrome的版本不兼容导致无法通过driver在浏览器输入网址而出现的,解决的办法很简单:查看你Chrome浏览器的版本(帮助 -> 关于Google Chrome(G)),下载对应版本的浏览器驱动就可以了。

三、使用selenium模拟登陆网易163

该部分通过Python Selenium库函数,调用Google Chrome 浏览器的webdriver 驱动实现,通过selenium库函数的操作API,模拟人工单步调浏览器。

代码单步运行注释如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

import time

driver=webdriver.Chrome()

destURL = "https://mail.163.com"

driver.get(destURL )

此时出现如下界面:

此时,我们需要模拟点击密码登陆,出现对话框,输入用户名和密码来登录账号:

driver.find_element_by_id("lbNormal").click()

login_frame=driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]")

driver.switch_to.frame(login_frame)

driver.find_element_by_name("email").send_keys("username")

driver.find_element_by_name("password").send_keys("password")

driver.find_element_by_id("dologin").click()

driver.switch_to.default_content()

#调用webdrive的quit功能关闭浏览器

driver.quit()

所以,可以通过上面例子,更换一下DestURL的地址,来模拟打开网站。

DestURL = "https://www.xuexi.cn"

browser.get(DestURL)

Notice:

本例子仅仅作为学习Python自动登陆程序使用,涉及如何通过网易易盾验证,不在本篇文章中解决,请勿用于其他用途。