基于python中selenium库,实现百度账号的自动登陆
1.如何实现自动打开百度网页并登录账号
首先使用chrome浏览器自动打开百度页面,然后寻找到登陆按键的节点元素,并实现点击。接着,找到用户名登陆的节点元素,实现扫码登陆到用户名登陆的切换。然后,找到用户名一栏的节点元素,自动输入用户名,找到密码一栏的节点元素,自动输入密码,找到登陆button的节点元素,自动按下按键。下面一布是针对需要进行短信验证的情况,此时会弹出短信验证窗口,找到发送短信的节点元素,并实现点击,手动填入接受到的验证码,并找到登陆button的节点元素,点击。成功登陆账号后,在搜索框输入指定内容,实现搜索。
1.1.使用chromedriver打开百度网页
使用chromedriver时需要填写存储路径,这是和其他驱动器不同的地方,代码如下:
driver=webdriver.Chrome("C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chromedriver.exe")
url=("http://www.baidu.com/")
driver.get(url)
1.2.爬取登录节点并实现点击,扫码登陆与用户名登陆的切换
在实现这个功能后,必须调用sleep函数,实现对代码的暂停,否则将无法实现后面代码的操作,代码如下:
login=driver.find_element_by_name("tj_login")
driver.execute_script("arguments[0].click();", login)
time.sleep(3)#必不可少
login_means=driver.find_element_by_id("TANGRAM__PSP_11__footerULoginBtn")
driver.execute_script("arguments[0].click();", login_means)
当没有time.sleep函数时,就会出现只执行上面的login,并且运行报错说找不到id(“TANGRAM__PSP_11__footerULoginBtn”)节点。具体原因是,在上面点击完成后,网页页面会发生变化,执行下面的代码时,是以变化后的页面为基础的,sleep函数相当于给了页面改变的缓冲时间,如果网速或者电脑比较卡的可以适当增加sleep时间,使得确保执行下面代码的时候是在新的网页的基础上实现的。
1.3.用户名,密码的输入
这里需要先找到相应节点,在输入自己设置的用户名以及密码前,都需要使用clear()函数来对输入框进行数据清楚,也可以不用,但使用可以防止手误输入一些空格和不必要的字符。代码段如下:
user=driver.find_element_by_name("userName")
user.clear()
user.send_keys("输入用户名")
time.sleep(2)
pwd=driver.find_element_by_name("password")
pwd.clear()
pwd.send_keys("输入密码")
time.sleep(2)
enter=driver.find_element_by_id("TANGRAM__PSP_11__submit")
driver.execute_script("arguments[0].click();", enter)
time.sleep(10)
最后的time.sleep(10)是为了防止出现输入验证码的情况,预留的输入验证码的时间,可以根据个人的手速改变时间。
1.4.当第一次登陆时,自动对手机发送验证码,填写验证码并确认
第一次,或者在陌生设备登录时,会需要给手机发送验证码,代码段如下:
test=driver.find_element_by_id("TANGRAM__29__button_send_mobile")
driver.execute_script("arguments[0].click();", test)
time.sleep(10)
enter_final=driver.find_element_by_id("TANGRAM__29__button_submit")
driver.execute_script("arguments[0].click();", enter_final)
time.sleep(20)
1.5.登陆账号后自动搜索内容
成功登录账号,并且自动搜索内容代码段:
text=driver.find_element_by_name("wd")
text.send_keys("poorlytechnology")
text.send_keys(Keys.RETURN)
2.完整代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver=webdriver.Chrome("C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chromedriver.exe")
url=("http://www.baidu.com/")
driver.get(url)
login=driver.find_element_by_name("tj_login")
driver.execute_script("arguments[0].click();", login)
time.sleep(3)#必不可少
login_means=driver.find_element_by_id("TANGRAM__PSP_11__footerULoginBtn")
driver.execute_script("arguments[0].click();", login_means)
user=driver.find_element_by_name("userName")
user.clear()
user.send_keys("输入用户名")
time.sleep(2)
pwd=driver.find_element_by_name("password")
pwd.clear()
pwd.send_keys("输入密码")
time.sleep(2)
enter=driver.find_element_by_id("TANGRAM__PSP_11__submit")
driver.execute_script("arguments[0].click();", enter)
time.sleep(10)#当要输入验证码时,暂停10s,以便输入验证码
# test=driver.find_element_by_id("TANGRAM__29__button_send_mobile")
# driver.execute_script("arguments[0].click();", test)
# time.sleep(10)
# enter_final=driver.find_element_by_id("TANGRAM__29__button_submit")
# driver.execute_script("arguments[0].click();", enter_final)
# time.sleep(20)
text=driver.find_element_by_name("wd")
text.send_keys("poorlytechnology")
text.send_keys(Keys.RETURN)
time.sleep(30)
driver.close()
driver.quit()
基于python中selenium库,实现百度账号的自动登陆相关推荐
- python中webdriver_浅谈python中selenium库调动webdriver驱动浏览器的实现原理
最近学web自动化时用到selenium库,感觉很神奇,遂琢磨了一下,写了点心得. 当我们输入以下三行代码并执行时,会发现新打开了一个浏览器窗口并访问了百度首页,然而这是怎么做到的呢? 1 from ...
- 基于python中cv2库的图像分割
一.概念 1.简述Radon变换检测直线的原理. Radon变换就是将数字图像矩阵在某一角度射线方向上做投影变换,按照投影方向累加像素. 2.简述基于区域生长的图像分割的原理. 根据同一物体区域内像素 ...
- python selenium脚本_怎样开始写第一个基于python的selenium脚本
1.下载并安装python(http://www.python.org/geti/). 2.安装selenium(http://pypi.python.org/pypi/selenium)下载并解压缩 ...
- 基于python的selenium两种文件上传方式
方法一.input标签上传 如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径. 方法二.非input标签上传 这种上传方式需要借助第三方工具,主要有以下三种情 ...
- python中selenium的运用实例
python中selenium应用实例 一个废物大学生的python笔记,共有三个实例:1.郑州某大学的打卡签到脚本2.某宝双十一的剁手脚本3.某省的答题脚本 #这几个脚本运行需要一点python基础 ...
- python中requests库的用途-数据爬虫(三):python中requests库使用方法详解
有些网站访问时必须带有浏览器等信息,如果不传入headers就会报错,如下 使用 Requests 模块,上传文件也是如此简单的,文件的类型会自动进行处理: 因为12306有一个错误证书,我们那它的网 ...
- python 颜色_如何使用python中matplotlib库分析图像颜色
用代码分析图像可能很困难.你如何使代码"理解"图像的上下文? 通常,使用AI分析图像的第一步 是找到主要颜色.在如何使用python中matplotlib库分析图像颜色中,我们将使 ...
- python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)
一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...
- Python中第三方库Requests库的高级用法详解
Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...
最新文章
- 中科院自动化所余山:对大脑的未知,并不阻碍借鉴大脑,成就智能
- web性能优化——关键渲染路径(上)
- 【转载】拿来即用的企业级安全运维体系搭建指南
- 女生学计算机教学,女生学计算机专业好吗 计算机辅助数学教学之我见
- php exif信息,php通过exif_read_data函数获取图片的exif信息
- Testing Round #16 (Unrated) C. Skier(map的应用)
- python分割字符串输出_python字符串分割
- axios 超时_聊聊 Vue 中 axios 的封装
- linux下led灯驱动程序
- 计算机 统计学考研,关于统计学考研,知无不言
- 李宏毅机器学习Regression
- AT24CXX、DS1302、红外HS0038 20170610 周六
- 计算机主机三维模型,三维模型
- 最近越来越当心,是不是自己真的老了。。。
- 5个免费的AI智能抠图工具,一键去除图片背景!
- OmegaT-竞赛争论机协助翻译软件
- cdma 复制短息到uim卡的实现
- 常用传感器讲解五--声音传感器-(KY-037)
- python中import星_Python imports 指北
- xls/csv文件转换成dbf文件
热门文章
- 中国教育和科技计算机网网络中心,中国教育和科研计算机网网络中心通告
- 数字化转型背景下,MES系统如何做好生产管理
- 90后男生全款4万买房移居鹤岗
- 关于批处理以及批处理常用命令的总结
- Rosetta基础2:preparing ligand
- 黑莓的转型:如何成为一家网络安全公司?
- 点石互动--石头之用户搜索行为与关键词分析(二):用户也会犯错
- XML用户界面语言(XUL)开发入门(2)
- 格式工厂 wav 比特率_DRmare Audio Converter——音频格式转换工具
- php代码实现xml格式转换,PHP实现XML与数据格式进行转换类实例