爬虫小白-如何辨别是否有cookie反爬案例

目录

      • 一、Cookie介绍
      • 二、cookie生成来源区分查找
      • 三、如何判断是否有cookie反爬
      • 四、来自服务器生成的cookie反爬解决方法
      • 五、来自js生成的cookie反爬解决方法

一、Cookie介绍

  • 先推荐该篇文章简单了解Cookie、Session、Token、JWT
  • 1、cookie的类型:会话cookie和持久cookie;其唯一的区别在于过期时间,如果设置了Discard参数,或者没有设置Expires或Max-Age参数来说明扩展的过期时间,这个cookie就是一个会话cookie
  • 2、会话cookie:是一种临时的cookie,它记录了用户访问站点时的设置和偏好,用户退出浏览器时,会话cookie就被删除了。
  • 3、 持久cookie的生存时间更长一些,它们存储在硬盘上,浏览器退出,计算机重启时它们仍然存在。通常用持久cookie维护某个用户会周期性访问的配置文件或登录名。

在这里插入图片描述

二、cookie生成来源区分查找

  • 1、cookie参数一般是通过两种方式生成,一种是服务端返回的cookie,另一种是网页端有javascript代码生成的cookie
  • 2、首先将打开谷歌开发者工具(一般按F12即可打开),清除掉网页缓存的cookie参数以及其他的参数,一般我们选择一个Clear Storage即可
    在这里插入图片描述
    在这里插入图片描述
  • 3、清掉缓存后,再刷新网页,同样在谷歌开发者工具Application的位置查看是否有HttpOnly属性,或者是第一个请求的响应头里面的Set-Cookie , 测试网站
    在这里插入图片描述
    在这里插入图片描述

三、如何判断是否有cookie反爬

  • 删掉cookie,重放请求,看是否还能和之前一样请求到一样的响应数据内容,如果能,则没有cookie反爬,如果不能,则有cookie反爬
  • 如何确定cookie哪个参数是反爬的关键,测试法,多个键值对一个一个删,看谁影响到了,具体的看b站视频十一姐时一介绍讲解
  • 测试:通过重放请求与删除单个cookie测试
    在这里插入图片描述
    在这里插入图片描述

四、来自服务器生成的cookie反爬解决方法

  • 1、来自服务器生成的cookie,一般我们不用管,只需要请求对应的链接即可,可以直接用会话session保持,比如requests里面的session

  • 2、案例一,szxx_session的cookie反爬 , 以及请求头参数X-Csrf-Token反爬
    在这里插入图片描述

    # -*- coding: utf-8 -*-            
    # @Time : 2023-07-23
    # @Author: sy
    # @公众号: 逆向OneByOne
    # @url: http://www.zjmazhang.gov.cn/hdjlpt/published?via=pc
    import urllib3
    import re
    from loguru import logger
    import requests
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)def _requests(url, data=None):if data:res = ses.post(url, headers=headers, data=data, timeout=10)else:res = ses.get(url, headers=headers, timeout=10)logger.info(f">>>requests {url}")logger.success(f">>>status_code 【{res.status_code}】 res.cookies {res.cookies} ses.cookies {ses.cookies}")if res.status_code in [521, 412, 202, 200]:return resdef page(token):post_url = "http://www.zjmazhang.gov.cn/hdjlpt/letter/pubList"form_data = {"offset": "0","limit": "20","site_id": "759010"}headers.update({"X-Csrf-Token": token})resp = _requests(post_url, form_data)print(resp.text)print("请问麻章区办理居住证需要满足什么条件?" in resp.text)def index():index_url = "http://www.zjmazhang.gov.cn/hdjlpt/published?via=pc"resp = _requests(index_url)print("请问麻章区办理居住证需要满足什么条件?" in resp.text)xsrf_token = re.search(r"var _CSRF = '(.*?)';",resp.text).group(1)return xsrf_tokenses = requests.session()
    headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.9","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36"
    }
    _token = index()
    page(_token)
    

五、来自js生成的cookie反爬解决方法

  • 1、来自js生成的cookie需要解密研究,可以通过hook-cookie的方式定位,cookie生成位置,然后回溯生成逻辑过程
    (function() {'use strict';var _cookie = ""; // hook cookieObject.defineProperty(document, 'cookie', {set: function(val) {console.log('cookie set->', new Date().getTime(), val);debugger;_cookie = val;return val;},get: function() {return _cookie;}});
    })()
    
  • 正在找案例中,本次不讲

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV——报错解决:error: ‘VideoCapture’ was not declared in this scope

代码&#xff1a; #include <opencv2/opencv.hpp>cv::Mat frame; std::string video_path "XXX"; VideoCapture capture(video_path); capture >> frame;原因&#xff1a; 未使用cv的命名空间 解决办法&#xff1a; 在cv::Mat frame;语句前面加入&a…

[驱动开发]字符设备驱动应用——点灯

点亮开发板stm32mp157的三盏灯 //头文件 #ifndef __LED_H__ #define __LED_H__//封装GPIO寄存器 typedef struct { volatile unsigned int MODER; // 0x00volatile unsigned int OTYPER; // 0x04volatile unsign…

Langchain 的 Conversation buffer window memory

Langchain 的 Conversation buffer window memory ConversationBufferWindowMemory 保存一段时间内对话交互的列表。它仅使用最后 K 个交互。这对于保持最近交互的滑动窗口非常有用&#xff0c;因此缓冲区不会变得太大。 我们首先来探讨一下这种存储器的基本功能。 示例代码&…

C语言——指针和数组练习题解析

指针和数组习题 前言&#xff1a;一、一维数组二、字符数组三、二维数组四、指针题目 前言&#xff1a; 学习了指针的初阶和进阶后&#xff0c;已经对指针有了一定了解。下面就需要做题目&#xff0c;去巩固所学的知识。 对数组名的理解&#xff1a; 数组名是数组首元素的地址…

Linux Day01

目录 一、Linux终端介绍 二、Linux目录介绍 1.目录结构 2.常见目录说明 3.绝对路径与相对路径 4.家目录 一、Linux终端介绍 二、Linux目录介绍 Linux目录&#xff1a;是从根目录"/"开始的 是一棵倒着的树 1.目录结构 2.常见目录说明 目前记住 bin 存放常用命…

跨境独立站如何应对恶意网络爬虫?

目录 跨境出海独立站纷纷成立 爬虫威胁跨境电商生存 如何有效识别爬虫&#xff1f; 技术反爬方案 防爬虫才能保发展 中国出海跨境电商业务&#xff0c;主要选择大平台开设店铺&#xff0c;例如&#xff0c;亚马逊、eBay、Walmart、AliExpress、Zalando等。随着业务的扩大&…

mysql or 阿里云RDS 随记

文章目录 函数SQL优化表分区索引水位线执行计划&#xff0c;explain 函数 SQL优化 表分区 索引 水位线 执行计划&#xff0c;explain EXPLAIN 是 MySQL 中的一个关键字&#xff0c;用于解释查询执行计划&#xff0c;帮助你理解查询是如何执行的以及使用了哪些索引。执行 …

使用springboot进行后端开发100问

properties和yaml文件怎么互转 安装插件 properties文件和yaml文件区别 properties 文件通过“.”和“”赋值&#xff0c;值前不加空格&#xff0c;yaml通过“:”赋值&#xff0c;值前面加一个空格&#xff1b;yaml文件缩进用空格&#xff1b; properties只支持键值对&#x…

Linux内核的USB 框架

Linux内核的USB框架是管理USB设备的核心组件之一&#xff0c;它负责处理与USB设备相关的请求和操作&#xff0c;并提供了一些通用的函数和数据结构&#xff0c;以简化设备驱动程序的开发。 在Linux内核的USB框架中&#xff0c;最重要的两个结构体是usb_driver和usb_device。us…

Ubuntu下打开QtCreator环境变量LD_LIBRARY_PATH与终端不一致

问题描述&#xff1a; 在unbuntu下使用QtCreator编译、运行程序时&#xff0c;总是出现XXX.so: cannot open shared object file: No such file or directory这类问题&#xff0c;但是在终端中编译或者运行程序则不会出现这些问题。在网上查了好久才明白QtCreator在打开时&…

逻辑漏洞原理及实战

前言 作者简介&#xff1a;不知名白帽&#xff0c;网络安全学习者。 博客主页&#xff1a;不知名白帽_网络安全,CTF,内网渗透-CSDN博客 网络安全交流社区&#xff1a;https://bbs.csdn.net/forums/angluoanquan 目录 逻辑漏洞基础 概述 分类 URL跳转漏洞 概述 危害 漏洞…

Hive调优集锦(2)

3.8 Join 优化 Join优化整体原则&#xff1a; 1、优先过滤后再进行 join 操作&#xff0c;最大限度的减少参与 join 的数据量 2、小表 join 大表&#xff0c;最好启动 mapjoin&#xff0c;hive 自动启用 mapjoin, 小表不能超过25M&#xff0c;可以更改 3、Join on的条件相同的…

51单片机串口

该部分的笔记来自视频教程链接https://www.bilibili.com/video/BV1bt4y197NR/?spm_id_from333.788&vd_sourceb91967c499b23106586d7aa35af46413 一、51单片机串口基础介绍 一般的应用层的协议中采用和校验或CRC校验&#xff0c;而奇偶校验还是解决基本通信中的帧格式中的…

Eclipse整合tomcat时要注意的几点

Eclipse整合tomcat时要注意的几点 1、安装目录及jdk 2、参数配置 注意&#xff1a;Arguments的配置&#xff0c;日志输出文件目录及java内存大小设置等&#xff0c;如下&#xff1a; -Dcatalina.base"E:\apache-tomcat-7.0.52" -Dcatalina.home"E:\apache-tomc…

无符号数和有符号数的“bug”

1. 起因 在实现kmp算法时&#xff0c;出现了诡异的现象&#xff0c;看下面的代码&#xff1a; int KMP (const char *s, const char *t) {int lenS strlen (s);int lenT strlen (t);int next[lenT];get_next (next, t);int i 0;int j 0;while (i < lenS && j …

程序化广告还有未来么?——程序化领域变化的底层逻辑和反思

三、近几年程序化广告领域的变化底层逻辑是什么呢&#xff1f; 当前国内程序化生态的状态&#xff0c;更像是希腊的古典时代&#xff1a;古希腊时代的城邦高度繁荣的时期。很多人可能对古希腊城邦没有概念&#xff0c;我们解释一下&#xff1a; 所谓城邦就是城市国家&#xff0…

涵子来信——自己的电脑——谈谈想法

大家好&#xff1a; 上一次谈论了苹果的那些事&#xff0c;今天我们来聊聊电脑。 我的第一台电脑现在成了这样子&#xff1a; 很多人以为是我自己拆了电脑做研究&#xff0c;其实是我的第一台电脑&#xff0c;真的坏了。 2021年&#xff0c;我有了属于我自己的第一台电脑&am…

链表 --- C语言实现

本篇文章来详细介绍一下数据结构中的链表。 目录 1.链表的概念及结构 2.链表的分类 3.单链表的实现 4.链表的面试题 5.双向链表的实现 6.顺序表和链表的区别 1.链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素…

【HTML5】拖放详解及实现案例

文章目录 效果预览代码实现 效果预览 代码实现 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>一颗不甘坠落的流星</title><style>#div1,#div2 {float: left;width: 100px;height: 27px;margin: 10px;paddin…

Echarts中饼状图label标签文本重叠

解决方式&#xff1a; 1. 未使用formatter&#xff0c;不使用formatter的情况下label重叠主要是没有设置 第一步&#xff1a;调整fontSize文字的显示大小&#xff0c;字越小就越不会重叠&#xff1b; 第二步&#xff1a;设置最小扇区角度&#xff0c;minAngle&#xff08;最小…