python代码实现自动登录
这里用谷歌浏览器为例,登录qq空间
条件:python环境,谷歌驱动chromedriver.exe,安装selenium模块
步骤
1、安装selenium模块
2、安装谷歌驱动chromedriver.exe
3、导入相关库
4、实例化浏览器对象
5、发起一个指定url对应请求
6、定位到账号密码登录操作标签
7、输入你的账号和密码
8、点击登录
9、进行滑块验证
10、关闭浏览器
1、安装selenium模块
pip install selenium
2、安装谷歌驱动chromedriver.exe
下载和chrome浏览器版本相对应的chromedriver.exe版本
我的chrome版本是99.0.4844.82,这里没有对应的驱动,下载相近的即可,这里我就下载99.0.4844.51
点击打开之后,看到如图所示信息,我的电脑是Windows系统,下载chromedriver_win32.zip,32位和64位的Windows系统都下载该压缩包
把解压后的chromedriver.exe粘贴放在python环境的目录下
3、导入相关库
# 导入相关库
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains #selenium的动作方法
4、实例化浏览器对象
bro=webdriver.Chrome()
5、发起一个指定url对应请求
bro.get('https://qzone.qq.com/')
6、定位到账号密码登录操作标签(定位都采用id进行标签定位)
如果定位的相关登录操作标签在iframe标签中,必须使用switch_to.frame('login_frame'),因为iframe是一个内联框架,就相当于一栋房子里的房间,必须打开房间的门才能看到里面的东西。
因为要自动登录,所以采用账号密码登录。点击左上方小箭头,选中‘账号密码登录’找到该动作的标签,定位到该标签find_element_by_id('switcher_plogin'),点击操作click()
# 如果定位的相关登录操作标签在iframe标签中,必须使用下面操作,login_frame是iframe标签的id属性值
bro.switch_to.frame('login_frame')
# 再定位到要操作的位置标签
a_tag=bro.find_element_by_id('switcher_plogin')
a_tag.click() #点击
7、输入你的账号和密码
点击账号密码登录操作之后,开始输入账号密码,点击左上方小箭头,选中‘账号’找到该动作的标签,账号和密码一样,定位到相应的输入框(用户名和密码)find_element_by_id('u')和find_element_by_id('p')
# 定位到相应的输入框(用户名和密码)
username_tag=bro.find_element_by_id('u') #账号
password_tag=bro.find_element_by_id('p') #密码
输入账号和密码send_keys('账号'),send_keys('密码'),将自己的账号密码写入其中
# 输入账号,将账号放入send_key()中
username_tag.send_keys('1234567890')
# 输入密码,将密码放入send_key()中
password_tag.send_keys('123456')
8、点击登录
点击’授权登录‘,定位到该标签find_element_by_id('login_button'),点击
# 定位到登录按钮
btn=bro.find_element_by_id('login_button')
btn.click() #点击
9、进行滑块验证
刚开始可能不用进行滑块验证,反复登录之后就需要了。这里就不采用cv2模块的方法进行滑块验证,比较难,直接用动作链ActionChains进行验证,因为通过观察每个滑块验证的滑动距离差不多,也不需要小滑块和背景图严丝合缝,直接拖动固定距离就基本可以验证成功。
通过观察源码该滑块验证又是在一个iframe内联框架中,所以又要使用switch_to.frame('tcaptcha_iframe')
定位到该滑块按钮,点击并长按,向右拖动一段距离,然后再松开鼠标左键
# 安全验证拖动滑块
# 实例化一个动作链对象
action=ActionChains(bro)
bro.switch_to.frame('tcaptcha_iframe')
# 定位到滑块
div=bro.find_element_by_id('tcaptcha_drag_thumb')
# click_and_hold()点击并长按
action.click_and_hold(div)
# move_by_offset(x,y) 移动,x:水平方向,y:竖直方向
action.move_by_offset(180,0)
sleep(1)
# 释放动作链接对象release(on_element=None),perform()执行链中的所有动作
action.release(div).perform()
10、关闭浏览器
# 关闭浏览器
bro.quit()
代码示例
# 导入相关库
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains #selenium的动作方法
# 实例化浏览器对象,这里用的是谷歌浏览器,将下载的chromediver.exe放到python3.x环境的目录下
# 下载和谷歌版本对应的chromedirver.exe版本
bro=webdriver.Chrome()# 让浏览器发起一个指定url对应请求
bro.get('https://qzone.qq.com/')# 如果定位的相关登录操作标签在iframe标签中,必须使用下面操作,login_frame是iframe标签的id属性值
bro.switch_to.frame('login_frame')
# 再定位到要操作的位置标签
a_tag=bro.find_element_by_id('switcher_plogin')
a_tag.click() #点击# 定位到相应的输入框(账号和密码)
username_tag=bro.find_element_by_id('u')
password_tag=bro.find_element_by_id('p')
sleep(1)
# send_keys()里面输入你的账号和密码
username_tag.send_keys('1234567890')
sleep(1)
password_tag.send_keys('123456')
sleep(1)# 定位到登录按钮
btn=bro.find_element_by_id('login_button')
btn.click() #点击
sleep(1)# 安全验证拖动滑块
# 实例化一个动作链对象
action=ActionChains(bro)
bro.switch_to.frame('tcaptcha_iframe')
# 定位到滑块
div=bro.find_element_by_id('tcaptcha_drag_thumb')
# click_and_hold()点击并长按
action.click_and_hold(div)
# move_by_offset(x,y) 移动,x:水平方向,y:竖直方向
action.move_by_offset(180,0)
sleep(1)
# 释放动作链接对象release(on_element=None),perform()执行链中的所有动作
action.release(div).perform()# 关闭浏览器
sleep(5)
bro.quit()
到这里你就可以用代码自动登录QQ空间
python代码实现自动登录相关推荐
- 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- 利用Python实现校园网自动登录(部署在树莓派)
利用Python实现校园网自动登录(部署在树莓派) 项目场景: 在实验室的时候,每天的第一个苦恼就是面对不自动弹窗的校园网登录,且一个账号仅支持两个设备. 实验室使用了路由器,多个设备使用同一个账号上 ...
- 用python脚本4行代码实现自动登录上网认证系统
公司最近搞了个上网认证系统.每天开机要连上网络都要登录一下. 一直听说python啥事都能干,说得我这个美工心痒痒. 装好python,搜了一些教程,说简单的post发送就能搞定, 再往下,了解到了p ...
- python必背100源代码-100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- python方式下自动登录51cto
这是一篇用python代码自动登录的脚本,大家可以参考,看能不能开发点其他东东... #!/usr/bin/env python #web client post of python network ...
- Python校园网定时自动登录-锐捷
开始 搭了个树莓派连着校园网,但是校园网每天24点掉线,次日6点后才能连接,所以用Python写了个脚本,每天早上6点20执行一次,这样就不用每天手动登录了. 在写代码之前我们要先获取一些参数,而用这 ...
- Python实现网站自动登录---傻瓜教程
本文介绍使用谷歌浏览器chrome自动登录网页, 下载谷歌浏览器:https://www.google.cn/chrome/,找到对应电脑操作系统(我的是WIN7 64位)的版本下载并安装. 1.首先 ...
- Python实现BBS自动登录并发帖
初学Python有了一段时间,寒假里又看了一些Web编程方面的知识,就写了一个实现bbs自动登录和发帖的Python脚本 由于本人学校BBS站首页使用js加载,貌似通过首页登录不大可行,然后就分析表单 ...
- python火车票购买程序代码_100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- Python桌面可视化+自动登录学校教务系统(含源码!!!)
前言:通过Python爬虫与tkinter模块实现桌面快捷自动化登录教务系统 目录: 前言:通过Python爬虫与tkinter模块实现桌面快捷自动化登录教务系统 效果展示: 整体思路: 总体框架: ...
最新文章
- TensorFlow 2.0发布在即,高级API变化抢先看
- Confluence 6 SQL Server 测试你的数据库连接
- 在Android中,如何以编程方式在dp中设置边距?
- Ext2、Ext3和Ext4之间的区别
- OpenCV-图像特征harris角点检测/SIFT函数/特征匹配-05
- jQuery 对AMD的支持(Require.js中如何使用jQuery)
- MAC地址进行验证的方法
- 诗与远方:无题(七十九)- 望红云而作
- SQL Server 2012完全备份、差异备份、事务日志备份和还原操作
- Arduino入门教程(二) Unity动感单车
- SparkSQL Analyzed实例源码解析
- eclipse解决中文乱码
- 《认知与设计——理解UI设计准则》系列笔记目录
- 中继 并发量_潮流UCM6102 IP PBX 支持500门分机 双外线 30个并发数
- 系统学习深度学习(四) --CNN原理,推导及实现源码分析
- Socket编程面试问题
- EXCEL的查找:如何按 行号+列号 进行查询, 可用indirect() + match() 或 index() + match()
- JavaScript 各种参数 详解(十二)
- 在我们之间为什么显示服务器已满,icloud储存空间已满怎么解决
- 艺赛旗 (RPA) Python 的数据类型
热门文章
- 物联lot是什么意思_什么是IOT物联网技术
- html 游戏 消消乐,html5叠房子消消乐小游戏代码
- C++游戏编程教程(一)
- Excel笔记(1) Excel常用基础功能
- 双闭环直流调速系统的MATLAB的仿真,双闭环直流调速系统MATLAB仿真
- QCC3020/QCC3040 TWS耳机按键切换EQ,APP切换EQ功能实现
- HTML美化页面(下)
- 【计算电磁学】真空中电磁波传播的MATLAB一维FDTD仿真程序
- STM32F205 HAL库 RTC软件复位后不准
- inno setup安装包程序完整版