使用cookie绕过验证码登录的实现代码

首先,在介绍使用cookie绕过验证码登录的实现前,有必要了解一下什么是cookie。

什么是cookie

在前后端分离的web应用中,一般使用cookie来维持用户的登陆状态,如购物车、身份认证、页面交互等。cookie是一种储存在用户浏览器中的小型文本文件,通常包含一些用于搜索查询、网站记住用户信息、统计网站访问数量和收集访客习惯数据等等。具体实现方式是服务器通过设置HTTP头信息,将相关的键值对(for example:username=admin)发送给客户端浏览器,浏览器再把这些信息储存在本地文件中,当再次访问同一站点时,客户端浏览器会根据相同的域名和路径发送cookie信息到服务端。

有了cookie的基础认识,我们接着来讲解如何使用cookie绕过验证码的实现代码和攻略了。

使用cookie绕过验证码登录的实现代码

一般情况下,爬虫程序要访问某些网站时,必须填写验证码,而且造成爬虫程序的访问异常。不过,如果我们获取到了该网站的cookie信息,将其设置到爬虫程序中,便可以实现绕过验证码的登录。

具体实现步骤如下:

1.在登录页面,填写账号密码,然后获取到登录页的cookie信息

import requests

#构造登录表单数据
loginData = {"username":"admin","password":"admin123"}

#构造请求头信息
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'}

#向登录页发送post请求
response = requests.post("http://www.test.com/login",data=loginData,headers=headers)

#获取到响应页面的cookie信息
cookie = response.cookies

2.将获取到的cookie信息设置到爬虫程序中,即可模拟登录成功,获取到网站的数据信息

import requests

#将先前获取到的cookie信息设置到爬虫程序中
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36', 'cookie':'username=admin; password=admin123'}

#向所需的网站发送get或post请求,获取其数据
response = requests.get("http://www.test.com/data", headers=headers)

通过以上两步操作,我们便可以实现使用cookie绕过验证码登录的过程。

下面再给出另一个示例来说明。例如有一个网站,其验证码校验是通过和后台储存的随机码进行比对,只有在比对成功后才能登录,并在浏览器保存一段时间的登录状态,不过由于存在短时间内多次出错锁定的防护机制,造成许多人无法登录。那么我们便可以通过以下的代码用cookie代替验证码的校验:

import requests

#构造登录表单数据
username='admin'
password='admin123'

#构造请求头信息,设置一个Referer参数,值为我们登录的url,这样就能获得服务端返回的cookie信息
headers = {'Referer': 'http://www.test.com/login'}
#向登录页发请求,获取cookie
response = requests.get('http://www.test.com/login', headers=headers)

#获取到验证码随机码
code=response.cookies['code']

#构造登录页表单数据,包括验证码校验随机码和登录信息
loginData = {"username":username,"password":password,'code':code}

#向登录页面发送post请求
response = requests.post("http://www.test.com/login",data=loginData,headers=headers,cookies=response.cookies)

#获取到响应的cookie信息,这里我们获取的是服务端返回的cookie数据
cookie = response.cookies

#构造新的请求头信息,设置cookies参数值为服务端返回的cookie数据
headers = {'cookie':cookie}

#向所需要获取数据的网站发送get或post请求,获取其数据信息
response = requests.get("http://www.test.com/data", headers=headers)

综上所述,以上是使用cookie绕过验证码登录的实现代码和攻略,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用cookie绕过验证码登录的实现代码 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 服务器端C#实现的CSS解析器

    服务器端C#实现的CSS解析器攻略 简介 服务器端C#实现的CSS解析器可以帮助我们在服务器端解析CSS文件,方便我们对于CSS文件进行修改、分析、压缩以及提取样式等操作。在本篇攻略中,我们将会讲解如何使用C#实现CSS解析器,以及其中的两个示例应用。 实现步骤 以下是使用C#实现CSS解析器的步骤: 安装NuGet包“CssParser”,该NuGet包是…

    JavaScript 2023年5月28日
    00
  • 用python找出那些被“标记”的照片

    下面是用Python找出被“标记”的照片的完整攻略。 步骤1:安装依赖库 在使用Python进行图像处理时,需要安装一些依赖库,如OpenCV、Pillow、numpy等。可以使用pip等方式进行安装。 !pip install opencv-python !pip install opencv-contrib-python !pip install Pil…

    JavaScript 2023年5月28日
    00
  • JS中精巧的自动柯里化实现方法

    JS中的柯里化是一种高级的函数式编程技巧,它允许我们将多参数函数转换为单参数函数,这在某些情况下非常方便并且优雅。下面我来详细讲解JS中精巧的自动柯里化实现方法。 基本柯里化方法 在JS中实现柯里化通常需要使用闭包和递归的方法。下面是一种基本柯里化方法: function curry(fn, args) { return function() { var n…

    JavaScript 2023年6月10日
    00
  • JS模拟实现ECMAScript5新增的数组方法

    下面是JS模拟实现ECMAScript5新增的数组方法的完整攻略。 一、ECMAScript5新增的数组方法 ECMAScript5新增了一些数组方法,这些方法主要是用于对数组进行操作和 manipulation。常见的 ECMAScript5 数组方法包括以下几个: forEach():对数组中的每个元素都执行一次提供的函数。 map():返回一个由原数组…

    JavaScript 2023年5月27日
    00
  • Js动态创建div

    下面是关于JavaScript动态创建div的完整攻略。 一、什么是动态创建div 动态创建div是指使用JavaScript代码在页面中动态生成div元素。通常,我们可以使用静态页面构建工具,如HTML、CSS等,来实现页面布局和内容呈现。但某些特定的场景,需要动态生成div元素,来实现一些动态效果或者数据展示等功能。 二、如何使用JavaScript动态…

    JavaScript 2023年6月11日
    00
  • javascript基础的动画教程,直观易懂

    Javascript基础动画教程 在本文中,我们将详细介绍Javascript动画的基础知识。这些知识将帮助你创建直观易懂的动画效果,使你的网页更加生动活泼。 动画基础知识 在Javascript动画中,我们通常使用以下基础知识: 1. 定时器 定时器在Javascript动画中起到很重要的作用。使用定时器,我们可以按照预定的时间间隔执行特定的代码。一般来说…

    JavaScript 2023年6月10日
    00
  • JavaScript 闭包的使用场景

    JavaScript 闭包的使用场景 在 JavaScript 中,每个函数都会创建一个闭包。闭包是由函数和创建该函数时在作用域中的变量组成的。在闭包中,函数可以访问其外部作用域中定义的变量,即使函数在其外部作用域之外被调用和执行。 闭包的优点 使用闭包有以下优点: 保护变量,防止变量污染全局作用域。 在函数外部访问函数内部的变量。 实现模块化开发。 缓存。…

    JavaScript 2023年6月10日
    00
  • 如何实现修改密码时密码框显示保存到cookie的密码

    实现修改密码时密码框显示保存到cookie的密码,可以按照以下步骤进行: 绑定修改密码的button或form的submit事件,通过JavaScript获取用户输入的新密码,然后将密码存储到cookie中。 示例代码: // 获取用户输入的新密码 const newPassword = document.getElementById(‘newPasswor…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部