大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作 #华为云·寻找黑马程序员#
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活动等你来撩!
网站登录
现在各大平台在反爬虫功能上,可谓花样繁多。总结下来按照破解成功率排名,最高的是滑动解锁、其次是验证码数字、之后是一次点击对应的汉字,最后是想12306之前那种反人类的让你说那些是奶糖吧,哈哈…
为什么我这么排序?很多人可能不赞同,认为验证码数字是最简单的…其实不然,因为验证码数字现在不仅是背景的色块,还穿插这很多混乱的线条,别说是系统识别,就是人仔细看都还会经常出错,所以成功率实在不高。至于滑动解锁,网上教程很多…剩下的两种就难度更高了…
那么如何能跳过这些步骤?在访问前添加cookie,是最简单粗暴的办法!
如何获取cookie
当我们成功登陆网址后,网站会将登陆验证信息保存在浏览器的Headers中,我们通过F12即可获取,但直接从headers中看是long long 的字符串不方便审查,所以切换到cookie栏,如下图:

在cookie中不仅有登陆凭证,还会有很多其他网站附带的属性。此时需要我们过滤掉无关的数据,仅保存我们需要的内容即可。
你问我怎么甄别?如简书这样的,什么local、read_mode、default_font肯定是打酱油的属性,没必要关注。
但上面的__yadk_uid等等的是否需要那就只能靠实验了…先只加token,不行再尝试添加其他的呗。
selenium与cookie有关的方法
selenium中与cookie相关的方法有以下内容:
- .delete_all_cookies()
- .get_cookies()/ .get_cookie()
- .add_cookie()
基本使用场景如下:
当,为了清空或者二次刷新登陆的时候,使用delete_all_cookies删除浏览器所有的cookie数据。
当当,为了获取系统某个或者所有cookie信息是使用get_cookies()/ .get_cookie()。
当当当,我们需要为浏览器添加cookie时,使用add_cookie。这种场景最多…
说的再多,不如来点实际的,设计一套思路来实现这三种方法:
- 首先,我们访问简书
- 然后点击登陆,输入用户名密码
- 等待十秒用来手动完成验证方式
- 获取get_cookie(key) 和get_cookies()
- 退出chromedriver
- 重新访问简书,并添加cookie
- 再次访问url,看到已经完成了登陆…
# -*- coding: utf-8 -*-
# @Author : 王翔
# @JianShu : 清风Python
# @Date : 2019/7/2 0:55
# @Software : PyCharm
# @version :Python 3.7.3
# @File : selenium_cookie.py
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.jianshu.com/u/d23fd5012bed")
driver.delete_all_cookies()
driver.find_element_by_id('sign_in').click()
driver.find_element_by_id('session_email_or_mobile_number').send_keys('username')
driver.find_element_by_id('session_password').send_keys('password')
driver.find_element_by_id('sign-in-form-submit-btn').click()
# 此时我们手动进行登录验证操作操作
time.sleep(10)
# cookie 关键字
key = 'remember_user_token'
user_token = driver.get_cookie(key)
print(user_token)
cookies = driver.get_cookies()
print(cookies)
driver.quit()
cookie = {'name': key, 'value': user_token['value']}
driver = webdriver.Chrome()
driver.get("https://www.jianshu.com/u/d23fd5012bed")
driver.add_cookie(cookie)
driver.get("https://www.jianshu.com/u/d23fd5012bed")
time.sleep(3)
driver.close()
看看实现效果,为了不暴露用户名密码,所以代码中清空了用户名,暂停手动输入的。
看到终端打印了cookie和cookies,cookie为字典,cookies为包裹了多个字典的列表。之后我们使用cookie进行二次登陆时,通过刷新两次界面看到右上角用户名由未登录变为了登陆:
OK,如果觉得这篇文章对你有帮助,欢迎将文章或我的微信公众号【清风Python】转发分享给更多喜欢python的朋友们,谢谢。
来源:华为云社区征文 作者: 清风Python
大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作 #华为云·寻找黑马程序员#的更多相关文章
- 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作
网站登录 现在各大平台在反爬虫功能上,可谓花样繁多.总结下来按照破解成功率排名,最高的是滑动解锁.其次是验证码数字.之后是一次点击对应的汉字,最后是想12306之前那种反人类的让你说那些是奶糖吧,哈哈 ...
- 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作【华为云技术分享】
网站登录 现在各大平台在反爬虫功能上,可谓花样繁多.总结下来按照破解成功率排名,最高的是滑动解锁.其次是验证码数字.之后是一次点击对应的汉字,最后是想12306之前那种反人类的让你说那些是奶糖吧,哈哈 ...
- 大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员#
今天讲什么 讲什么标题说了,讲selenium的单选.多选.下拉框选项定位.但其实这东西,没什么太多说的,又比较枯燥,那该怎么让这一集selenium的课程变得有趣呢?有请老中医,哈哈- 怎么样,这个 ...
- 大型情感剧集Selenium:2_options设置 #华为云·寻找黑马程序员#
上集回顾 昨天说简单介绍了什么是selenium,它能干what,和发展史与梗概.当的是python如何通过pip安装selenium,并下载对应浏览器的webdriver. 最后简单通过一个Demo ...
- 大型情感剧集Selenium:1_介绍 #华为云·寻找黑马程序员#
学习selenium能做什么? 很多书籍.文章中是这么定义selenium的: Selenium 是开源的自动化测试工具,它主要是用于Web 应用程序的自动化测试,不只局限于此,同时支持所有基于web ...
- 大型情感剧集Selenium:3_元素定位 #华为云·寻找黑马程序员#
关于昨天的文章 今天有朋友反馈,代码运行的时候,selenium提示警告 DeprecationWarning: use options instead of chrome_options drive ...
- 使用jieba分析小说太古神王中,男主更爱谁?去文章中找答案吧!#华为云·寻找黑马程序员#
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...
- 大型情感剧集Selenium:8_selenium网页截图的四种方法
有时候,有时候,你会相信一切有尽头-当你的代码走到了尽头,那么保留最后一刻的状态尤为重要,此时你该如何操作?记录日志-没有将浏览器当前的状态进行截图来的直观! 那么,selenium截取截屏,有哪些方 ...
- 大型情感剧集Selenium:9_selenium配合Pillow完成浏览器局部截图
网页截图 上次提到了selenium的四种截图方法,最终截图了整张网页.但很多时候,我们仅仅需要截图部分的内容.比如截取某个关键信息,或者现在已经不常见的截图验证码(现在都是各种按规则点击-).那么我 ...
随机推荐
- [考试反思]1031csp-s模拟测试96:常态
按照smily的说法这一场的大众分暴力分是不是265啊QwQ那我可真是个大垃圾 总算还是回归了常态. T3文件名写错,把“city.in”写成“city,in” 还好,只丢了20分. T2乱打$O(n ...
- 最新JetBrains PyCharm 使用教程--常用功能设置(三)
选择代码路径和Python解释器版本 设置Pycharm菜单字体的大小 设置编辑器里面字体大小 设置文件编码 设置背景颜色 设置tab键为4个空格 设置代码内容和关键字颜色 ...
- Project Euler 58: Spiral primes
从一开始按以下方式逆时针旋转,可以形成一个边长为七的正方形螺旋: 一个有趣的现象是右下对角线上都有一个奇完全平方数,但是更有趣的是两条对角线上的十三个数中有八个数是素数(已经标红),也就是说素数占比为 ...
- 聚类——密度聚类DBSCAN
Clustering 聚类 密度聚类——DBSCAN 前面我们已经介绍了两种聚类算法:k-means和谱聚类.今天,我们来介绍一种基于密度的聚类算法——DBSCAN,它是最经典的密度聚类算法,是很多算 ...
- starUML 3.0.2文件 百度云
文件百度云---链接:https://pan.baidu.com/s/1BVX9Ze40bkgd3k_4WFb99A 提取码:t7kj 使用方法:将starUML安装目录(一般为 C:\Program ...
- hexo搭建简易的博客网站
0.环境检测 1.系统升级(图形更新) #update-manager 检测状态 2.检测升级(命令更新) #sudo apt update #sudo apt -y dist-upgrade 一.安 ...
- Python 基础 装饰器
今天把学过的装饰器的知识进行回顾一下,说到装饰器,第一反应就是这个东西呢就是用来装逼的,为啥这样说呢,是应为没有这个东西照样可以干活,大部分工作都是可以做的,不管咋样还是把学过的装逼器梳理一下吧. 一 ...
- Javascript模块化开发2——Gruntfile.js详解
一.grunt模块简介 grunt插件,是一种npm环境下的自动化工具.对于需要反复重复的任务,例如压缩.编译.单元测试.linting等,自动化工具可以减轻你的劳动,简化你的工作.grunt模块根据 ...
- [ASP.NET Core 3框架揭秘] 文件系统[1]:抽象的“文件系统”
ASP.NET Core应用 具有很多读取文件的场景,比如配置文件.静态Web资源文件(比如CSS.JavaScript和图片文件等)以及MVC应用的View文件,甚至是直接编译到程序集中的内嵌资源文 ...
- Mysql备份还有这么多套路,还不了解下?
逻辑备份和物理备份 逻辑备份 逻辑备份用于备份数据库的结构(CREAET DATABASE.CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小.跨SQL服务器.需要修改数据等场 ...