当前位置: 首页 > news >正文

猿人学web端爬虫攻防大赛赛题第13题——入门级cookie

1. F12开发者模式

刷新第一页,仔细研究发现里面有三次请求名为13的请求,根据题目提示cookie关键字,所以主要留意请求和响应的cookie值。

三次请求都带了sessionid,说明存在session(后面写代码要用session来写)。

另外,还都带了一个cookie键值:yuanrenxue_cookie,如下

image-20210226111634464

在这三个请求的响应中,可以看到,第一次请求看不到返回了什么,第二次请求返回页面结构,第三次请求是返回数据。

接下来就先找找yuanernxue_cookie这个是在哪里设置的。

2. 源码分析

右键查看源码,直接返回下面内容:

<script>document.cookie=('y')+('u')+('a')+('n')+('r')+('e')+('n')+('x')+('u')+('e')+('_')+('c')+('o')+('o')+('k')+('i')+('e')+('=')+('1')+('6')+('1')+('4')+('3')+('0')+('9')+('8')+('6')+('8')+('|')+('N')+('k')+('5')+('M')+('6')+('I')+('X')+('U')+('G')+('X')+('O')+('m')+('a')+('L')+('E')+('t')+('8')+('5')+('i')+('3')+('M')+('0')+('Y')+('6')+('R')+('m')+('8')+('y')+('b')+('G')+('N')+('u')+('O')+('R')+('W')+('E')+('J')+('a')+';path=/';location.href=location.pathname+location.search</script>

这个应该就是第一个请求中的代码,因为其他请求源码都不是这个。

代码是先设置两个cookie,直接在console中调试即可看到:

image-20210226112746964

这里cookie值跟上面第一张图片中的不相等,是因为服务器有session时长,加载页面一小段时间后,我们再右键查看源码其实会重新获取session,也就是重新从第一次请求开始,所以返回的内容就是设置cookie的代码。

注意:如果在刷新页面后,立即右键查看源代码,看到的就是所有请求完成后的页面源码了。

接下来写个代码调试一下,用代码来获取其中的cookie,并添加到session中。

3. 编写代码

首先写第一次请求,是访问http://match.yuanrenxue.com/match/13,并且记住要用session建立连接,因为要保持连接状态,不然会重置cookie,如下:

import requests
import re
import jsondef get_cookie():url = f'http://match.yuanrenxue.com/match/13'session = requests.Session()response = session.get(url)print(response.text)if __name__ == '__main__':get_cookie()

结果如图:

image-20210226113655453

加个正则匹配一下,顺便设置到cookie中去:

import requests
import re
import jsondef get_cookie():url = f'http://match.yuanrenxue.com/match/13'session = requests.Session()response = session.get(url)print(response.text)s = ''.join(re.findall("\(\'([\w=|])\'\)", response.text))print(s)cookie_key, cookie_value = s.split('=')session.cookies.set(cookie_key, cookie_value)return sessionif __name__ == '__main__':session = get_cookie()

输出结果如下:

image-20210226113924399

最后用设置好的session直接请求api:

import requests
import re
import jsondef get_cookie():url = f'http://match.yuanrenxue.com/match/13'session = requests.Session()response = session.get(url)print(response.text)s = ''.join(re.findall("\(\'([\w=|])\'\)", response.text))cookie_key, cookie_value = s.split('=')session.cookies.set(cookie_key, cookie_value)return sessiondef get_response(session, page):url = f'http://match.yuanrenxue.com/api/match/13?page={page}'headers = {'User-Agent': 'yuanrenxue.project',}response = session.get(url, headers=headers)return json.loads(response.text)if __name__ == '__main__':session = get_cookie()sum = 0for i in range(1, 6):data = get_response(session, i)['data']for d in data:sum += d['value']print(sum)

输出结果:

image-20210226123719772

相关文章:

猿人学web端爬虫攻防大赛赛题第13题——入门级cookie

1. F12开发者模式 刷新第一页&#xff0c;仔细研究发现里面有三次请求名为13的请求&#xff0c;根据题目提示cookie关键字&#xff0c;所以主要留意请求和响应的cookie值。 三次请求都带了sessionid&#xff0c;说明存在session&#xff08;后面写代码要用session来写&#x…...

机器指标监控技术方案

文章目录 机器指标监控技术方案架构图组件简介Prometheus 简介核心特性适用场景 Grafana 简介核心特性适用场景 Alertmanager 简介核心特性适用场景 数据采集机器Node ExporterMySQL ExporterRedis ExporterES ExporterRocketMQ ExporterSpringcloud ExporterNacos 数据存储短期…...

数据库设计理论:从需求分析到实现的全流程解析

引言 在当今信息爆炸的时代&#xff0c;数据已成为企业和组织最宝贵的资产之一。如何有效地组织、存储和管理这些数据&#xff0c;是数据库设计需要解决的核心问题。一个优秀的数据库设计能够提高系统性能&#xff0c;确保数据一致性&#xff0c;降低维护成本&#xff0c;而糟…...

一文详解 Linux下的开源打印系统CUPS(Common UNIX Printing System)

文章目录 前言一、CUPS 简介二、CUPS 常用指令解析2.1 安装 CUPS2.2 启动/重启服务2.3 添加打印机&#xff08;核心操作&#xff09;2.4 设置默认打印机2.5 打印文件2.6 查看打印任务2.7 取消打印任务2.8 查看、移除已添加的打印机 三、调试与常见问题3.1 日志查看3.2 驱动问题…...

uniapp打包apk详细教程

目录 1.打apk包前提条件 2.获取uni-app标识 3.进入dcloud开发者后台 4.开始打包 1.打apk包前提条件 1.在HBuilderX.exe软化中&#xff0c;登录自己的账号 2.在dcloud官网&#xff0c;同样登录自己的账号。没有可以免费注册。 2.获取uni-app标识 获取方法&#xff1a;点…...

C++初阶-string类2

目录 1.迭代器 1.1普通迭代器的使用 1.2string::begin 1.3string::end 1.4const迭代器的使用 1.5泛型迭代器和const反向迭代器 1.6string::rbegin 1.6string::rend 1.7string::cbegin、string::cend、string::crbegin、string::crend 与begin/end、rbegin/rend的区别 …...

Qt QComboBox 下拉复选多选(multicombobox)

Qt QComboBox 下拉复选多选&#xff08;multicombobox&#xff09;&#xff0c;备忘&#xff0c;待更多测试 【免费】QtQComboBox下拉复选多选&#xff08;multicombobox&#xff09;资源-CSDN文库...

逻辑回归之参数选择:从理论到实践

在机器学习的广阔领域中&#xff0c;逻辑回归作为一种经典的有监督学习算法&#xff0c;常用于解决分类问题。它以其简单易懂的原理和高效的计算性能&#xff0c;在实际应用中备受青睐。然而&#xff0c;要充分发挥逻辑回归的优势&#xff0c;参数选择是关键环节。本文将结合信…...

10、属性和数据处理---c++17

一、[[fallthrought]] 用途&#xff1a;在 switch 语句中标记某个分支 (case) 故意不写 break&#xff0c;明确告知编译器“执行穿透”是有意为之。 仅在需要向下穿透时使用&#xff0c;且应添加注释说明原因 #include<cstdio> #include<iostream> using namesp…...

conda管理python环境

安装conda 使用anaconda官网安装地址&#xff1a;https://www.anaconda.com/download/success 配置镜像环境 conda config --add channels Index of /anaconda/pkgs/main/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror conda config --add channels Index of /an…...

【Python学习路线】零基础到项目实战系统

目录 &#x1f31f; 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 &#x1f9e0; 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 &#x1f4bb; 二、实战演示环境配置要求核心代码实现运行结果验证 ⚡ 三、性能对比测试方法论量化数据对比…...

C/C++核心机制深度解析:指针、结构体与动态内存管理(面试精要)

C/C核心机制深度解析&#xff1a;指针、结构体与动态内存管理&#xff08;面试精要&#xff09; 引言 在系统级编程领域&#xff0c;C/C语言凭借对硬件的直接操作能力和高效的内存管理机制&#xff0c;长期占据主导地位。面试中&#xff0c;指针、结构体和动态内存管理作为三…...

宇树科技举办“人型机器人格斗大赛”

2025 年 5 月至 6 月&#xff0c;一场全球瞩目的科技盛宴 —— 全球首场 “人形机器人格斗大赛”&#xff0c;将由杭州宇树科技盛大举办。届时&#xff0c;观众将迎来机器人格斗领域前所未有的视觉震撼。 为打造最强参赛阵容&#xff0c;宇树科技技术团队在过去数周里&#xf…...

getattr 的作用

getattr 是 Python 内置的一个函数&#xff0c;用于“动态地”获取对象的属性。**它允许你在运行时通过属性名称&#xff08;字符串形式&#xff09;来访问对象的属性&#xff0c;而不用在代码中直接硬编码属性名。**下面详细介绍该方法的用法和注意事项&#xff1a; ────…...

腾讯云服务器性能提升全栈指南(2025版)

腾讯云服务器性能提升全栈指南&#xff08;2025版&#xff09; 一、硬件选型与资源优化 1. 实例规格精准匹配 腾讯云服务器提供计算型CVM、内存型MEM、大数据型Hadoop等12种实例类型。根据业务特性选择&#xff1a; • 高并发Web应用&#xff1a;推荐SA3实例&#xff0…...

Kotlin与Jetpack Compose的详细使用指南

Kotlin与Jetpack Compose的详细使用指南&#xff0c;综合最新技术实践和官方文档整理&#xff1a; 一、环境配置与基础架构 ‌项目创建‌ 在Android Studio中选择Empty Compose Activity模板&#xff0c;默认生成包含Composable预览的MainActivity2要求Kotlin版本≥1.8.0&…...

潇洒郎: 100% 成功搭建Docker私有镜像仓库并管理、删除镜像

1、Registry Web管理界面 2、拉取Registry-Web镜像 创建配置文件 tee /opt/zwx-registry/web-config.yml <<-EOF registry:url: http://172.28.73.90:8010/v2name: registryreadonly: falseauth:enabled: false EOF 拉取docker-registry-web镜像并绑定Registry仓库 …...

【Spring Boot 注解】@ConfigurationProperties

文章目录 ConfigurationProperties注解一、简介二、依赖引入三、基本用法四、主要特性五、激活方式六&#xff0c;优点七、与 Value 对比 ConfigurationProperties注解 一、简介 ConfigurationProperties 是 Spring Boot 提供的一个强大注解&#xff0c;用于将外部配置&#…...

阿里云服务迁移实战: 06-切换DNS

概述 按前面的步骤&#xff0c;所有服务迁移完毕之后&#xff0c;最后就剩下 DNS 解析修改了。 修改解析 在域名解析处&#xff0c;修改域名的解析地址即可。 如果 IP 已经过户到了新账号&#xff0c;则不需要修改解析。 何确保业务稳定 域名解析更换时&#xff0c;由于 D…...

Java实现归并排序算法

1. 归并排序原理图解 归并排序是一种分治算法&#xff0c;其核心思想是将数组分成两半&#xff0c;分别对这两半进行排序&#xff0c;然后将排序后的两半合并。以下是归并排序的步骤&#xff1a; 1. 分治&#xff1a; - 将数组分成两半。 - 递归地对每半部分进行归并排序。 2. …...

Vue 项目中运行 `npm run dev` 时发生的过程

步骤1&#xff1a;找到「任务说明书」(package.json) 当你输入 npm run dev&#xff0c;系统首先会去查项目的 「任务说明书」&#xff08;即 package.json 文件&#xff09;&#xff0c;看看 dev 这个任务具体要做什么。 示例代码&#xff08;package.json 片段&#xff09;…...

Python3(19)数据结构

在 Python 编程中&#xff0c;数据结构是组织和存储数据的重要方式&#xff0c;合理选择和使用数据结构能显著提升程序的效率和可读性。这篇博客通过丰富的代码示例深入学习 Python3 的数据结构知识&#xff0c;方便日后复习回顾。 一、列表&#xff08;List&#xff09; 1.1…...

macOS 安装了Docker Desktop版终端docker 命令没办法使用

macOS 安装了Docker Desktop版终端docker 命令没办法使用 1、检查Docker Desktop能否正常运行。 确保Docker Desktop能正常运行。 2、检查环境变量是否添加 1、添加环境变量 如果环境变量中没有包含Docker的路径&#xff0c;你可以手动添加。首先&#xff0c;找到Docker的…...

VR 汽车线束培训:探索高效学习新路径​

在汽车线束生产领域&#xff0c;VR 汽车线束培训对于新员工的成长至关重要&#xff0c;它是一个关键环节&#xff0c;直接影响着生产效率和产品质量。传统的培训方式&#xff0c;通常是新员工在老员工的指导下&#xff0c;通过实际操作来学习线束装配流程。这种方式不仅耗费大量…...

k8s术语之Deployment

Deployment为Pod和Replica Set(下一代Replication Controller)提供声明式更新 您只需要在Deployment中描述您想要的目标状态是什么&#xff0c;Deployment controller就会帮您将Pod和ReplicaSet的实际状态改变到您的目标状态。您可以定义一个全新的Deployment Controller的职责…...

对js的Date二次封装,继承了原Date的所有方法,增加了自己扩展的方法,可以实现任意时间往前往后推算多少小时、多少天、多少周、多少月;

封装js时间工具 概述 该方法继承了 js 中 Date的所有方法&#xff1b;同时扩展了一部分自用方法&#xff1a; 1、任意时间 往前推多少小时&#xff0c;天&#xff0c;月&#xff0c;周&#xff1b;参数1、2必填&#xff0c;参数3可选beforeDate(num,formatter,dateVal); befo…...

17、商品管理:魔药商店运营——React 19 CRUD实现

一、魔药商店的炼金基石 1. 魔药配方契约&#xff08;数据模型设计&#xff09; // 预言池契约&#xff08;Supabase Schema&#xff09; interface Potion { id: uuid, name: string, effect: healing | transformation | attack, stock: number, moonSensitive: boo…...

2025-04-30 AIGC-如何做短片视频

摘要: 2025-04-30 AIGC-如何做短片视频 如何做短片视频: 一、画图修图 1.保存视频&#xff08;无水保存&#xff09; 2.文案提取&#xff08;提取文案&#xff09; 3. DeepSeek(提示词&#xff09; 4.小梦Ai&#xff08;图片视频&#xff09; 5.修图Ai 6.扩图Ai 7.养生…...

【自然语言处理与大模型】如何获取特定领域的微调数据集?

在特定领域中&#xff0c;数据集通常由提出需求的一方提供。然而&#xff0c;在某些情况下&#xff0c;如果他们未能提供所需的数据&#xff0c;或者你正在独立开展一个项目&#xff0c;并且需要相应的数据来推进工作&#xff0c;这时你应该怎么办呢&#xff1f;本文提供一种思…...

算法导论第6章思考题

6.3-2 func(A) 1 A.heap-sizeA.len 2 \quad for i ⌊ A . l e n 2 ⌋ \lfloor {A.len\over2}\rfloor ⌊2A.len​⌋ downto 1 3 \qquad MAX-HEAPIFY(A,i) 对于第2行的循环控制变量i来说&#xff0c;为啥要求它是从 ⌊ A . l e n 2 ⌋ \lfloor {A.len\over2}\rfloor ⌊2A.len​⌋…...

论文阅读:2024 ACM SIGSAC Membership inference attacks against in-context learning

总目录 大模型安全相关研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 Membership inference attacks against in-context learning https://arxiv.org/pdf/2409.01380 https://www.doubao.com/chat/4030440311895554 速览 这篇论文主要研究了…...

读论文笔记-CoOp:对CLIP的handcrafted改进

读论文笔记-Learning to Prompt for Vision-Language Models Problems 现有基于prompt engineering的多模态模型在设计合适的prompt时有很大困难&#xff0c;从而设计了一种更简单的方法来制作prompt。 Motivations prompt engineering虽然促进了视觉表示的学习&#xff0c…...

国产化海光C86架构服务器安装windows实录

最近几年与红蓝关系急转直下&#xff0c;尤其是科技领域尤为突出。随之而来的就是软硬件的国产化大潮。由于行业的原因根据要求必须使用国产化服务器、国产化操作系统、国产化数据库、国产化中间件。虽然闭关锁国断开红蓝联系可以在一定程度激发国产化发展&#xff0c;但是不得…...

基于SpringBoot的旅游网站的设计与实现

资源详情&#xff1a; 私信我或点击链接获取&#xff1a; 基于SpringBoot的旅游网站的设计与实现资源-CSDN文库 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff0c;旅游网站当然也不能排除在外…...

【Axure教程】增删改饼图

今天教大家制作增删改饼图的原型模版&#xff0c;该模版是用Axure原生元件制作的&#xff0c;所以不需要联网或者调用外部接口&#xff0c;使用也很方便&#xff0c;默认数据在中继器表格里填写&#xff0c;默认支持20个不同颜色的扇形&#xff0c;后续可根据实际需要自己增加扇…...

FastAPI系列12:使用JWT 登录认证和RBAC 权限控制

使用JWT 登录认证和RBAC 权限控制 1、身份认证&#xff08;Authentication&#xff09;与JWT身份认证&#xff08;Authentication&#xff09;的方式JWT&#xff08;JSON Web Token&#xff09;的实现原理 2、授权&#xff08;Authorization&#xff09;与RBAC授权&#xff08;…...

定时任务xxl-job国产化改造,适配磐维数据库(PostgreSQL)

前言 因公司要求系统需要全面国产化改造&#xff0c;其中也涉及到定时任务xxl-job的改造。 使用的xxl-job版本为&#xff1a;2.5.0 一、修改配置 1、修改pom.xml&#xff0c;引入postgresql组件 <dependency><groupId>org.postgresql</groupId><artif…...

2025华东杯ABC题赛题已出速拿

2025华东杯ABC题赛题已出速拿 A: B: C:...

PostgreSQL事务与并发清理

1.并发清理概述 清理过程为指定的表&#xff0c;或数据库中的所有表执行以下任务。 1. 移除死元组 移除每一页中的死元组&#xff0c;并对每一页内的活元组进行碎片整理。 移除指向死元组的索引元组。 2. 冻结旧的事务标识&#xff08;txid&#xff09; 如有必要&#xf…...

基于DeepSeek与HTML的可视化图表创新研究

一、研究背景 在当今数字化时代&#xff0c;数据呈指数级增长&#xff0c;广泛渗透于社会各个领域。无论是商业运营、科学研究&#xff0c;还是公共管理等方面&#xff0c;海量数据蕴含着丰富的潜在价值&#xff0c;成为驱动决策优化、推动业务发展、促进科学创新的关键要素。数…...

游戏引擎学习第250天:# 清理DEBUG GUID

设置阶段&#xff0c;重新开始清理调试层 今天&#xff0c;我们将继续进行之前未完成的任务&#xff0c;主要是清理调试层的代码&#xff0c;并为其在游戏中使用做好准备。昨天我原本准备清理一些代码&#xff0c;但没能完成&#xff0c;所以今天我们将从那里开始&#xff0c;…...

删除k8s某命名空间,一直卡住了怎么办?

以 kubectl delete ns cert-manager 命令卡住为例&#xff0c;并且命名空间一直处于 Terminating 状态&#xff0c;说明 Kubernetes 无法完成删除操作&#xff0c;通常是因为 Finalizers 阻塞或某些资源无法正常清理。 解决方法 1. 检查命名空间状态 kubectl get ns cert-man…...

聊一聊接口自动化测试断言处理策略

目录 一、断言设计原则 1.1精准性 1.2可维护性 1.3容错性 二、常见断言类型及实现 2.1基础验证 2.2响应体验证 2.3业务逻辑验证 2.4异常场景验证 2.5数据库断言 三、断言策略 3.1 精准断言 vs 模糊断言 3.2关键字段优先 3.3数据动态处理 四、多断言处理 4.1单用…...

C# 实现列式存储数据

C#实现列式存储数据指南 一、列式存储概述 列式存储(Columnar Storage)是一种数据存储方式&#xff0c;它将数据按列而非行组织。与传统的行式存储相比&#xff0c;列式存储在以下场景具有优势&#xff1a; ​​分析型查询​​&#xff1a;聚合计算、分组统计等操作效率更高…...

vscode中设置eslint保存时自动格式化未生效

vscode中设置eslint保存时自动格式化未生效 设置一 设置二 上述设置二未勾选导致未生效...

力扣HOT100——207.课程表

你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课程 ai 则 必须 先学习课程 bi 。 例如…...

开源协议全解析:类型、选择与法律风险规避指南

[TOC] 在当今开源软件主导的技术生态中&#xff0c;开源协议&#xff08;Open Source License&#xff09;是决定项目能否被商业使用、二次开发的关键法律文件。据统计&#xff0c;GitHub上超过70%的项目使用某种形式的开源协议&#xff0c;但其中近30%存在协议兼容性问题。本…...

Android学习总结之自定义view设计模式理解

面试题 1&#xff1a;请举例说明自定义 View 中模板方法模式的应用 考点分析 此问题主要考查对模板方法模式的理解&#xff0c;以及该模式在 Android 自定义 View 生命周期方法里的实际运用。 回答内容 模板方法模式定义了一个操作的算法骨架&#xff0c;把一些步骤的实现延…...

Kubernetes Ingress 深度解析

Kubernetes Ingress 深度解析 一、Ingress 基本概念 Ingress 是 Kubernetes 中管理外部访问集群服务的 API 对象&#xff0c;提供 HTTP/HTTPS 路由规则&#xff0c;实现以下功能&#xff1a; 基于域名/路径的路由TLS/SSL 终止负载均衡流量控制 与传统服务的区别 特性Ingre…...

rk3568安全启动功能实践

本文主要讲述笔者在rk3568芯片上开发安全启动功能实践的流程。其中主要参考瑞芯微官方文档《Rockchip_Developer_Guide_Secure_Boot_for_UBoot_Next_Dev_CN.pdf》。文档中描述逻辑不是很清晰而且和当前瑞芯微的sdk中安全启动的流程匹配度不高。本文就不再对瑞芯微官方文档的内容…...