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 相关文章推荐
Python 基础教程之str和repr的详解
Aug 20 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
Python reduce()函数的用法小结
Nov 15 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
python django中8000端口被占用的解决
Dec 17 Python
关于pytorch处理类别不平衡的问题
Dec 31 Python
Python变量格式化输出实现原理解析
Aug 06 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
完美解决Pycharm中matplotlib画图中文乱码问题
Jan 11 Python
Django 实现jwt认证的示例
Apr 30 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
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
PHP目录操作实例总结
2016/09/27 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
JS实现放大镜效果
2020/09/21 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
Python 的描述符 descriptor详解
2016/02/27 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
干部现实表现材料
2014/02/13 职场文书
股东合作协议书范本
2014/04/14 职场文书
学校搬迁方案
2014/06/15 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
招标授权委托书样本
2014/09/23 职场文书
教师聘用意向书
2015/05/11 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
新党员入党决心书
2015/09/22 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
python数字类型和占位符详情
2022/03/13 Python
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL