网站登录

现在各大平台在反爬虫功能上,可谓花样繁多。总结下来按照破解成功率排名,最高的是滑动解锁、其次是验证码数字、之后是一次点击对应的汉字,最后是想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- -*-
# @Author : 王翔
# @JianShu : 清风Python
# @Date : // :
# @Software : PyCharm
# @version :Python 3.7.
# @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() # 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()
driver.close()

看看实现效果,为了不暴露用户名密码,所以代码中清空了用户名,暂停手动输入的。
看到终端打印了cookie和cookies,cookie为字典,cookies为包裹了多个字典的列表。之后我们使用cookie进行二次登陆时,通过刷新两次界面看到右上角用户名由未登录变为了登陆:

To Be Continue?

今天的selenium内容就更新到这里,为什么是问号,因为笃定了明天这篇文章浏览量又是几十…不写吧这个系列成了太_监文,写吧完全是给个别人更新的,哎…
OK,如果觉得这篇文章对你有帮助,欢迎将文章或我的微信公众号【清风Python】转发分享给更多喜欢python的朋友们,谢谢。
作者:清风Python

HDC.Cloud 华为开发者大会2020 即将于2020年2月11日-12日在深圳举办,是一线开发者学习实践鲲鹏通用计算、昇腾AI计算、数据库、区块链、云原生、5G等ICT开放能力的最佳舞台。

欢迎报名参会

大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作【华为云技术分享】的更多相关文章

  1. 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作 #华为云·寻找黑马程序员#

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  2. 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作

    网站登录 现在各大平台在反爬虫功能上,可谓花样繁多.总结下来按照破解成功率排名,最高的是滑动解锁.其次是验证码数字.之后是一次点击对应的汉字,最后是想12306之前那种反人类的让你说那些是奶糖吧,哈哈 ...

  3. 大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员#

    今天讲什么 讲什么标题说了,讲selenium的单选.多选.下拉框选项定位.但其实这东西,没什么太多说的,又比较枯燥,那该怎么让这一集selenium的课程变得有趣呢?有请老中医,哈哈- 怎么样,这个 ...

  4. 大型情感剧集Selenium:2_options设置 #华为云·寻找黑马程序员#

    上集回顾 昨天说简单介绍了什么是selenium,它能干what,和发展史与梗概.当的是python如何通过pip安装selenium,并下载对应浏览器的webdriver. 最后简单通过一个Demo ...

  5. 大型情感剧集Selenium:1_介绍 #华为云·寻找黑马程序员#

    学习selenium能做什么? 很多书籍.文章中是这么定义selenium的: Selenium 是开源的自动化测试工具,它主要是用于Web 应用程序的自动化测试,不只局限于此,同时支持所有基于web ...

  6. 大型情感剧集Selenium:3_元素定位 #华为云·寻找黑马程序员#

    关于昨天的文章 今天有朋友反馈,代码运行的时候,selenium提示警告 DeprecationWarning: use options instead of chrome_options drive ...

  7. 大型情感剧集Selenium:8_selenium网页截图的四种方法

    有时候,有时候,你会相信一切有尽头-当你的代码走到了尽头,那么保留最后一刻的状态尤为重要,此时你该如何操作?记录日志-没有将浏览器当前的状态进行截图来的直观! 那么,selenium截取截屏,有哪些方 ...

  8. 大型情感剧集Selenium:9_selenium配合Pillow完成浏览器局部截图

    网页截图 上次提到了selenium的四种截图方法,最终截图了整张网页.但很多时候,我们仅仅需要截图部分的内容.比如截取某个关键信息,或者现在已经不常见的截图验证码(现在都是各种按规则点击-).那么我 ...

  9. Python 中拼音库 PyPinyin 的用法【华为云技术分享】

    [摘要] 最近碰到了一个问题,项目中很多文件都是接手过来的中文命名的一些素材,结果在部署的时候文件名全都乱码了,导致项目无法正常运行. 后来请教了一位大佬怎么解决文件名乱码的问题,他说这个需要正面解决 ...

随机推荐

  1. 手写instanceof (详解原型链) 和 实现绑定解绑和派发的事件类

    A  instanceof  B    是判断  A  是否继承自B,是返回true,  否返回false 再精确点就是判断B   是否  再  A  的 原型链上, 什么是原型链,举个例子: 我们定 ...

  2. elasticsearch bulk

    情景介绍 公司2000W的数据从mysql 迁移至elasticsearch,以提供微服务.本文基于elasticsearch-py bulk操作实现数据迁移.相比于elasticsearch-dum ...

  3. CATransform3D 特效详解

    http://blog.sina.com.cn/s/blog_8f5097be0101b91z.html

  4. PMP备考-第三章-项目管理过程

    过程:完成预定目标的,一系列相互关联的活动的集合,以便运用一些列工具与技术把特定的输入转化成特定的输出. 五大项目管理过程组:启动-规划-执行-监控-收尾 戴明环(PDCA循环):计划-实施-检查-行 ...

  5. I2C 挂死,SDA一直为低问题分析【转】

    转自:https://blog.csdn.net/winitz/article/details/72460775 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...

  6. python简单日志处理

    简单日志处理 import datetime import re logfile='''58.61.164.141 - - [22/Feb/2010:09:51:46 +0800] "GET ...

  7. xenserver 添加和卸载硬盘

                最近在浪潮服务器上安了xenserver系统,创建虚拟机,没注意磁盘超负载就重启了服务导致各种坑,一言难尽,忧伤逆流成河啊,所以准备将各种操作整理总结记录下,持续更新ing~~ ...

  8. LNK1104 无法打开文件“xxx.lib”

    尝试解决方法: 1.找到这个库,把这个库移动到特定的文件夹下,在属性中添加这个库: 具体来说:打开VS项目->项目属性->配置属性->C/C+±>附加包含目录->编辑-& ...

  9. springboot-项目获取resources下文件的方法

    spring项目获取resources下文件的方法   最近写读取模板文件做一些后续的处理,将文件放在了项目的resources 下,发现了一个好用的读取方法:   比如上边是你需要读取的文件:  读 ...

  10. webpy安装

    C:\Users\ceshi>python -m pip install web.pyCollecting web.py Downloading web.py-0.38.tar.gz (91kB ...