python自动登录代码
公司有很多管理平台,账号有禁用机制,每个月至少登录一次,否则禁用。导致有时候想登录某个平台的时候,发现账号已经被禁用了,还得走流程解禁。因此用python实现了一下自动登录,每天定时任务运行一次。ps:只需要账号密码即可登录
主要是使用 selenium 包的 webdriver ,然后需要下载一下 对应浏览器的驱动,我使用的是chrome 对应版本:版本 78.0.3904.108(正式版本) (64 位) ,版本在浏览器菜单-设置-关于chrome 就可以看到
注意点:
1、使用的python 版本是3.7
2、我用的chrome,所以需要下载 chromedriver ,下载地址:http://chromedriver.storage.googleapis.com/index.html ,下载下来以后放到 chrome 安装目录下,还要配置环境变量,Path下面新增环境变量: 如下图:

3、配置完后,重启电脑生效(不知道是不是都需要重启。。。)

具体python 代码如下:
from selenium import webdriver;
from selenium.webdriver.chrome.options import Options;
import time;
import utils; def autologin(url, username, password, country, accountadmin):
print("======= auto login begin ", country, "=========")
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=chrome_options)
try:
# 登录xxx.com
driver.get(url) # 等10秒,浏览器打开和网页跳转需要时间
time.sleep(5)
print(" send username and password ") # 取ID为txtLoginCode的网页元素(用户名输入元素)
elem_user = driver.find_element_by_id('username')
# 清空输入
elem_user.clear()
# 键入用户名
elem_user.send_keys(username)
# 取ID为txtPwd的网页元素(密码输入元素)
elem_pass = driver.find_element_by_id('password')
# 清空输入
elem_pass.clear()
# 键入密码
elem_pass.send_keys(password)
# 取ID为btnLogin的登录按钮
elem_login = driver.find_element_by_name('submit')
# 点击登录按钮
elem_login.click()
print(" submit ") time.sleep(5)
# 登陆成功找一个页面上的标识,如果有这个元素 说明登陆成功,如果没有,则登陆失败
elems = driver.find_element_by_class_name('easyui-layout');
return '<tr style=" height:50px;"><td>' + country + ' </td><td>' + url + ' </td><td>' + ' ok </td><td>' + accountadmin + '</td></tr>';
except Exception as error:
print(error)
# 如果没有标识,则会报异常,说明登陆失败, 失败原因在 id 为"msg"的 div里面
errormsg = driver.find_element_by_id("msg");
return '<tr style=" height:50px;"><td>' + country + ' </td><td>' + url + ' </td><td>' + " <span style='color:red'>login fail with error: " + errormsg.get_attribute('innerHTML')+ "<span></td><td>" + accountadmin + "</td></tr>";
finally:
print("======= auto login end ", country, "=========");
print(''); start = time.time() result = "<table>"
result += autologin("https://www.123*****.com/login", "zhanglifeng", "password", '俄罗斯', "");
result += autologin("https://www.abc*****.com/login/", "zhanglifeng", "password", '越南', "");
result += "</table>" end = time.time()
timelog = "%.2f" % (end - start);
result += "<br /><br /> 自动登录运行时间 " + timelog + "秒"; # 发送自动登陆结果到邮箱
utils.sendEmail('自动登录', result, ['zhanglifeng@***.com.cn']);
exit(0)
python自动登录代码的更多相关文章
- Python自动生成代码工具
项目中有一个需求,对一个基类而言,拥有一个比较方法和拷贝方法,某些地方需要频繁地对这两个方法进行调用.对于所有子类而言,需要重写这两个方法,并在其中维护类内一些成员变量.例如有一个变量m_iMyVal ...
- java 自动登录代码
javaBean的代码 package bean; import java.io.Serializable; public class Admin implements Serial ...
- 吴裕雄--天生自然PYTHON学习笔记:python自动登录网站
打开 www. 5 l eta . com 网站,如果己经通过某用户名进行了登录,那么先退出登录 . 登录该网站 的步骤一般如下 : ( 1 )单击右上角的“登录”按钮. ( 2 )先输入账号. ( ...
- Python 自动登录网站(处理Cookie)
http://digiter.iteye.com/blog/1300884 Python代码 def login(): cj = cookielib.CookieJar() ope ...
- Python 自动登录哔哩哔哩(2captcha打码平台)
前言 研究爬虫的各位小伙伴都知道,需要登录才能获取信息的网站,是比较难爬的,原因就是在于,现在各大网站为了反爬,都加入了图片验证码,滑动验证码之类的干扰 本篇就针对哔哩哔哩的滑动验证码进行讲解和破解 ...
- 5、Selenium+Python自动登录163邮箱发送邮件
1.Selenium实现自动化,需要定位元素,以下查看163邮箱的登录元素 (1)登录(定位到登录框,登录框是一个iframe,如果没有定位到iframe,是无法定位到账号框与密码框) 定位到邮箱框( ...
- 转载——Python模拟登录代码
''' Created on 2014-2-20 @author: Vincent ''' import urllib.parse import gzip import json import re ...
- Python模拟登录代码
注:访问http://127.0.0.1:8080/user/6,总是会要求必须有登录权限,也就是,若未登录,访问该页面,会跳转到登陆页面. 全自动模拟登录 半自动模拟登录:
- python 自动登录网页
语言:python 浏览器:chrome 工具:chrome控制台 #!/usr/bin/python # coding: GBK import urllib,urllib2,httplib,cook ...
随机推荐
- 无需重新安装软件,将软件从C盘移至其他盘(mklink)
事先说明,这篇博文算是视频的文字转载版,来源为该视频的五分钟后内容→https://www.bilibili.com/video/av78397784/ 如何拯救标红的C盘[高玩] 有时候安装软件会手 ...
- ReactNative: 创建自定义List列表组件
一.介绍 在App中,很多数据消息显示都是一行行动态展示的,例如新闻标题,其实每一条新闻标题都可以独立成一个简单的列表组件,之前我们使用Text组件将数据都写死了,为了提高组件的灵活性,我们可以使用T ...
- ASP.NET中的身份验证
身份验证方式windows passport form none授权allow 允许deny 拒绝特殊符号 *代表所有用户 ?代表匿名用户跳转配置<system.web><autho ...
- [browser window窗口大小 算是screen补充吧]主要因为移动IE游览器 写了个兼容
先上图吧 来上代码 console.log(window.outerWidth + '--' + window.outerHeight);//只读的整数,声明了整个窗口的XY //IE 不支持此属性, ...
- iOS引导页(镂空效果)
推荐使用SDK:pod 'EAFeatureGuideView' 温馨提示:(引导的图片图标需要私人订制的可以用自己的,让UI提供) 参考链接:https://www.jianshu.com/p/c9 ...
- 微信小程序——表单验证插件WxValidate的二次封装(二)
在上一篇博客<微信小程序——仿jqueryValidate表单验证插件WxValidate的二次封装>中,我将WxValidate做了再次封装,简化了初始规则数据的构造,但是当有错误时页面 ...
- SQL Server有意思的数据类型隐式转换问题
写这篇文章的时候,还真不知道如何取名,也不知道这个该如何将其归类.这个是同事遇到的一个案例,案例比较复杂,这里抽丝剥茧,仅仅构造一个简单的案例来展现一下这个问题.我们先构造测试数据,如下所示: CRE ...
- Linux方案级ROM/RAM优化记录
关键词:readelf.bloat-o-meter.graph-size.totalram_pages.reserved.meminfo.PSS.procrank.maps等等. 根据项目的需求,进行 ...
- 浅谈vue中的计算属性和侦听属性
计算属性 计算属性用于处理复杂的业务逻辑 计算属性具有依赖性,计算属性依赖 data中的初始值,只有当初始值改变的时候,计算属性才会再次计算 计算属性一般书写为一个函数,返回了一个值,这个值具有依赖性 ...
- WPF Datagrid 动态生成列 并绑定数据
原文:WPF Datagrid 动态生成列 并绑定数据 说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码) 数据来源于左侧列 左侧列数据源 当然num1 属于临时的dome使用 可 ...