【Js逆向】某博反爬机制的逆向分析

相信很多接触过爬虫的师傅,在对某博进行请求的时候,发现某博是会对cookie校验的,而我们在模拟操作的时候,是直接把浏览器的cookie进行copy,虽然我没有测试过这个cookie的有效期,但我觉得这样只适合日常测试或教学,不能实现一劳永逸。

当我们没有携带cookie进行某博的访问时,会出现Sina Visitor System字样的标题,如果我们是正常的浏览器访问的话,这个空白页面会一闪而逝,然后跳转到某博界面,所以可以确定,这个页面就是某博的反爬机制,我们的研究也就从此处开始。

测试链接:

https://s.weibo.com/weibo?q=%E8%9C%98%E8%9B%9B%E4%BE%A0

打开一个无痕界面,在F12中打开,停用JavaScript,因为空白界面一闪而逝,我们要先停掉跳转,方便分析。

图片

访问链接,我们看到了这个反爬页面的全貌,此处空白是空白页的颜色。

图片

我们对此处断点,断点后在刚才的地方关掉停用JavaScript,刷新界面,发现断点成功。

图片

我们的目的是找到生成cookie的位置,知道目的之后,开始逐步分析。

走完html发现进入到了这个js文件内,每块代码的作用已经注释好了。

图片

图片

当我们断点跟到此处的时候,发现了设置cookie的代码。

图片

图片

向上找堆栈,看看cookie是如何生成的。

看到此处的我大吃一惊,因为这并不是js代码,反而是一个请求返回内容,然后继续向上看,跟到了刚才的空白页中。

图片

图片

既然知道是从网络请求的cookie,我们就打开网络面板,揭开它神秘的面纱:

图片

这样看太费劲了,我们copy到postman里分析,同时也是为了方便调试。

图片

ctrl+o直接把curl甩进去,接着请求一下,可以看到请求成功的cookie。

POST的内容也是固定值,看样子没有什么要分析的:

图片

点击右侧边栏的<> 然后转换成python语言,放到ide里,请求成功。

图片

然后我们使用正则,将cookie中的SUB、SUBP、tid提取出来,再次运行。

图片

没有问题,包装成函数,方便调用,顺便改个文件名方便导入。

图片

图片

下面进行测试,先导进来看看能不能用。

图片

请求正常,用刚才的测试链接进行访问试试。

访问失败了?

图片

在这里我又进行了无数次的调试,抓包。结果最终发现:

图片

图片

是这里的cookie名称写错了,应该大写为SUB、SUBP。

Tips:tid在后来测试中发现没有使用,然后我就删掉了。

修改完之后,我们再来测试一下,不出意外的话,请求成功了!

图片

至此,某博反爬机制成功绕过!

经过多次请求发现,这个地方的cookie是跟IP地址有关的,只有更换IP后才会刷新cookie。当然,如果当前IP的访客cookie过期的话,是会自动更新的。

后记

写完代码之后,想起来之前写的一个某博扫码登录程序,最开始的时候是可以用的,后来再次请求的时候会出现Sina Visitor System,当时技术有限,不知道怎么解决。这次既然解决了,把cookie带上看看能不能成功运行,代码成功运行,获取登录cookie成功!

图片

圆了高中时期,在手机上逆向某博生成短链接的梦。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LNMP一键安装包

LNMP一键安装包是什么? LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Alibaba/Amazon/Mint/Oracle/Rocky/Alma/Kali/UOS/银河麒麟/openEuler/Anolis OS Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQ…

亚马逊云科技产品测评:玩转云服务器(EC2)

文章目录 &#x1f4d1;引言一、亚马逊发展历史介绍二、云服务器资源地域分布三、云服务器实例规格四、EC2计费模式五、亚马逊免费EC2领取 &#x1f4d1;引言 亚马逊&#xff1a;世界上最大的云服务器提供商 亚马逊云科技 是由亚马逊公司提供的一系列云计算服务。它提供了弹性计…

KNOWLEDGE DISTILLATION BASED ON TRANSFORMED TEACHER MATCHING

摘要 温度标度作为logit匹配和概率分布匹配的bridge技术&#xff0c;在知识蒸馏&#xff08;KD&#xff09;中起着至关重要的作用。传统上&#xff0c;在蒸馏中&#xff0c;温度标度适用于教师的logits和学生的logits。在本文中&#xff0c;受到最近一些研究成果的启发&#x…

Leetcode—622. 设计循环队列【中等】

2024每日刷题&#xff08;128&#xff09; Leetcode—622. 设计循环队列 实现代码 class MyCircularQueue { public:MyCircularQueue(int k): q(k) {qSize k;}bool enQueue(int value) {if(isFull()) {return false;}q[rear] value;rear (rear 1) % qSize;deflag false;…

数据结构相关

数据结构相关 文章目录 数据结构相关[TOC](文章目录)前言一、数据结构介绍二、不同的逻辑结构的存储方案(Java实现)2.1 线性结构&#xff1a;线性表、数组2.2 线性结构&#xff1a;栈2.3 线性结构&#xff1a;队列2.4 树形结构&#xff1a;树 三、一些常见的3.1 布隆过滤器Bloo…

网络安全是否有需求

● 由于网络威胁数量不断增加&#xff0c;网络安全的需求很高。 ● 组织正在大力投资网络安全以保护其数据。 ● 就业市场缺乏熟练的网络安全专业人员。 ● 网络安全认证可以提升您在网络安全领域的职业前景。 ● 持续学习并了解最新的安全趋势在该领域至关重要。 网络安全重磅…

stm32f103zet6_串口实现-DHT11-tim1(定时)

1思路 1打开时钟 1.1使用定时器实现us级的计时 1.2在打开串口 1,3在DHT11驱动中修改引脚 stm32cudeMX 配置 1打开时钟 2打开串口 3打开tim1(定时器) 4生成代码 代码设置 1导入DHT11库(tim.h是定时器的文件系统自动生成的) DHT11.c #include "dht11.h" #inc…

鸿蒙内核源码分析(信号量篇) | 谁在负责解决任务的同步

基本概念 信号量&#xff08;Semaphore&#xff09; 是一种实现任务间通信的机制&#xff0c;可以实现任务间同步或共享资源的互斥访问。 一个信号量的数据结构中&#xff0c;通常有一个计数值&#xff0c;用于对有效资源数的计数&#xff0c;表示剩下的可被使用的共享资源数…

咖啡机定量出水的原理是什么

咖啡机实现定量出水的原理主要依赖于流量计的使用。流量计是一种能够测量液体或气体通过管道的速度和体积的装置。在咖啡机中&#xff0c;常用的小型流量计有霍尔式流量计和光电式流量计两种。 霍尔式流量计利用了霍尔效应的原理来实现流量测量。它包含一个带有两极磁铁的叶轮…

信创基础软件之操作系统

操作系统概述 操作系统是计算机系统软硬件资源的纽带。操作系统是连接硬件和数据库、中间件、应用软件的纽带&#xff0c;是承载各种信息设备和软件应用的重要基础软件。操作系统控制和管理整个计算机系统的硬件、软件资源&#xff0c;组织和调度计算机工作和资源&#xff0c;…

等保建设技术建议书(Word原件)

1信息系统详细设计方案 1.1安全建设需求分析 1.1.1网络结构安全 1.1.2边界安全风险与需求分析 1.1.3运维风险需求分析 1.1.4关键服务器管理风险分析 1.1.5关键服务器用户操作管理风险分析 1.1.6数据库敏感数据运维风险分析 1.1.7“人机”运维操作行为风险综合分析 1.2…

C语言结构体类型

C语言结构体类型 个人主页&#xff1a;大白的编程日记 个人主页&#xff1a;C语言学习之路 文章目录 C语言结构体类型前言一.结构体1.1结构体类型的声明1.2结构体变量的创建和初始化1.3结构成员访问操作符1.4结构的特殊声明1.5 结构的自引用 二.结构体内存对齐2.1对齐规则2.2内…

嵌入式linux学习第一天

参考正点原子Linux开发文档。记录下知识点。 Shell 基本操作 前面我们说 Shell 就是“敲命令”&#xff0c;那么既然是命令&#xff0c;那肯定是有格式的&#xff0c;Shell 命令的格式 如下&#xff1a; command -options [argument] command: Shell 命令名称。 options&…

27 JavaScript学习:异步编程

异步的概念 在JavaScript中&#xff0c;异步编程是一项重要的概念&#xff0c;特别在处理用户交互、网络请求和文件读写等场景下非常常见。JavaScript是一门单线程语言&#xff0c;因此需要通过异步编程来避免阻塞主线程&#xff0c;保证程序的流畅性和响应性。 在JavaScrip…

避雷!7.7分,新增1区TOP被标记On Hold,5本已被踢除!

本周投稿推荐 SSCI • 2/4区经管类&#xff0c;2.5-3.0&#xff08;录用率99%&#xff09; SCIE&#xff08;CCF推荐&#xff09; • 计算机类&#xff0c;2.0-3.0&#xff08;最快18天录用&#xff09; SCIE&#xff08;CCF-C类&#xff09; • IEEE旗下&#xff0c;1/2…

[入门] Unity Shader前置知识(5) —— 向量的运算

在Unity中&#xff0c;向量无处不在&#xff0c;我想很多人都使用过向量类的内置方法 normalized() 吧&#xff0c;我们都知道该方法是将其向量归一化从而作为一个方向与速度相乘&#xff0c;以达到角色朝任一方向移动时速度都相等的效果&#xff0c;但内部具体是如何将该向量进…

力扣每日一题109:有序链表转换二叉搜索树

题目 中等 给定一个单链表的头节点 head &#xff0c;其中的元素 按升序排序 &#xff0c;将其转换为 平衡 二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0&#xff0c;-3,9&#xff0c;-10,null,5]&#xff0c;它…

Java毕设之学院党员管理系统的设计与实现

运行环境 环境说明: 开发语言:java 框架:springboot&#xff0c;vue JDK版本:JDK1.8 数据库:mysql5.7(推荐5.7&#xff0c;8.0也可以) 数据库工具:Navicat11 开发软件:idea/eclipse(推荐idea) Maven包:Maven3.3.9 系统实现 管理员功能实现 党员管理 管理员进入指定功能操作…

一款开源高性能AI应用框架

前言 LobeChat 是一个基于 Next.js 框架构建的 AI 会话应用&#xff0c;旨在提供一个 AI 生产力平台&#xff0c;使用户能够与 AI 进行自然语言交互。 LobeChat应用架构 LobeChat 的整体架构由前端、EdgeRuntime API、Agents 市场、插件市场和独立插件组成。这些组件相互协作&a…

css实现上下左右对勾选中状态角标

&#x1f365;左上角 &#x1f365;右上角 &#x1f365;左下角 &#x1f365;右下角: &#x1f365;左上角: .blueBackground {position: relative;border: 1px solid #91c7f3;background: #F0F8FF !important;&:after {content: "";position: absolute;top:…