python selenium登录豆瓣网过程解析


Posted in Python onAugust 10, 2019

登录流程:

  1. 实例化一个driver,然后driver.get()发送请求
  2. 最重要的:切换iframe子框架,因为豆瓣的网页中的登录那部分是一个ifrme,必须切换才能寻找到对应元素
  3. 利用selenium切换到账号密码登录
  4. 利用selenium输入账户和密码
  5. 利用selenium点击登录按钮
  6. 然后利用字典推导式保存了一下cookie

代码实现:

import time
from selenium import webdriver

# 实例化driver
driver = webdriver.Chrome()
driver.get('https://www.douban.com/')
## 切换iframe子框架
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])

driver.maximize_window() # 最大化窗口
driver.find_element_by_css_selector('li.account-tab-account').click() # 点击密码登录的标签
driver.find_element_by_id('username').send_keys('13343396443')
driver.find_element_by_id('password').send_keys('lilei120400')
# 点击‘登录豆瓣'按钮
# 这里需要注意,当元素的class属性有好几个的时候,此函数的参数填class的第一个就好
driver.find_element_by_class_name('btn').click() # 元素的class属性:btn btn-account
# 获取cookies,字典推导式
cookies = {i['name']: i['value'] for i in driver.get_cookies()}
print(cookies)

time.sleep(5)
driver.quit() # 退出浏览器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
python使用cPickle模块序列化实例
Sep 25 Python
Python最长公共子串算法实例
Mar 07 Python
Python和C/C++交互的几种方法总结
May 11 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
python -v 报错问题的解决方法
Sep 15 Python
Python headers请求头如何实现快速添加
Nov 03 Python
python matplotlib库绘制散点图例题解析
Aug 10 #Python
python matplotlib库绘制条形图练习题
Aug 10 #Python
Python OpenCV实现鼠标画框效果
Aug 19 #Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
Apr 18 #Python
python点击鼠标获取坐标(Graphics)
Aug 10 #Python
python matplotlib库直方图绘制详解
Aug 10 #Python
python字典的遍历3种方法详解
Aug 10 #Python
You might like
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
PHP 网站修改默认访问文件的nginx配置
2017/05/27 PHP
javascript parseInt 函数分析(转)
2009/03/21 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
详解vue 组件注册
2020/11/20 Vue.js
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
python实现图书借阅系统
2019/02/20 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
python ETL工具 pyetl
2020/06/07 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
大学秋游活动方案
2014/02/11 职场文书
安全生产标语
2014/06/06 职场文书
学党史心得体会
2014/09/05 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
政工师工作总结2015
2015/05/26 职场文书
歌舞青春观后感
2015/06/10 职场文书