首页 > 其他分享 >猿人学web端爬虫攻防大赛赛题第17题——天杀的http2.0

猿人学web端爬虫攻防大赛赛题第17题——天杀的http2.0

时间:2024-10-30 19:43:24浏览次数:4  
标签:web 17 赛题 headers requests httpx match http2.0

题目网址: https://match.yuanrenxue.cn/match/17

解题步骤:

  1. 老方法,看触发的数据包。
    image
  2. 只有一个数据包,再看cookie中有没有特殊的字段。
    image
  3. 没有遇到第13题的特殊字段,直接访问。
import requests

url = "https://match.yuanrenxue.cn/api/match/17?page=1"
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 "
                  "Safari/537.36",
    "cookie": "sessionid=1zl8qqmuijewpn1pxji9epmjvoaz5ipi; Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1729915594,1729937930,1729945496,1730034166; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1730284775"}
resp = requests.get(url, headers=headers)
print(resp.text)

运行却得不到页面上的数字。
image
4. 到底哪里出了问题呢,再结合题目http2.0,难道要用http2.0协议,先查看当前流量包的协议。这里以chrome浏览器为例,右击流量包,选择Header Options然后选择Protocol,就会显示协议号。
image
image
5. 确定是http2.0协议了。根据官方说明,requests只支持http1.1协议,所以这里就不能能用requests库了。
image
6. 经过网上搜索,HyperHttpx两个库支持http2.0。
hyper的话,不是很适用,因为很多功能跟requests库没法类比,所以这里选用httpx。
httpx的安装:pip install httpx[http2] # 这样写才能装上支持http2的httpx,不写的话默认是不支持http2的
7. 用httpx库尝试去访问一下,用法与requests库差不多。

import httpx
import re

client = httpx.Client(http2=True)
sum_num = 0
for i in range(1, 6):
    url = "https://match.yuanrenxue.cn/api/match/17?page={}".format(i)
    # print(url)
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 "
                      "Safari/537.36",
        "cookie": "sessionid=1zl8qqmuijewpn1pxji9epmjvoaz5ipi; Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1729915594,1729937930,1729945496,1730034166; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1730284775"}
    resp = client.get(url, headers=headers)
    pattern = r'{"value": (?P<num>.*?)}'
    findall = re.findall(pattern, resp.text)
    for item in findall:
        # print(item)
        sum_num += int(item)
print(sum_num)

运行结果如下。
image
8. 提交结果,成功通关。
image

标签:web,17,赛题,headers,requests,httpx,match,http2.0
From: https://www.cnblogs.com/sbhglqy/p/18516477

相关文章

  • [ windows权限维持 ] 利用永恒之蓝(MS17-010)漏洞取靶机权限并创建后门账户
    ......
  • CTF学习(1):WEB(upload)
    1.进入网站(文件上传题?)--->CTRL+U查看源码(无果)--->导入带有一句话木马的.php文件(无法上传非图片文件)2.使用JavascriptSwitch插件关闭网页的js设置后再次上传图片(成功)--->将文件上传后的路径添加进蚁剑(密码为先前上传的.php文件中POST['']内的字符)3.连入服务器后在......
  • 566. 火影忍者动漫主题网页 大学生期末大作业 Web前端网页制作 html+css
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这么好......
  • 【并查集】【中间值范围】NOIP2017]奶酪
    https://ac.nowcoder.com/acm/contest/22904/1027开了ll还见祖宗注意x^2+y2算完之后先判断有没有超4r2的范围,没有的话再计算z^2,算是对longlong溢出的特判#include<bits/stdc++.h>typedeflonglongll;usingnamespacestd;classUnionFind{public:UnionFind(ll......
  • # [Educational Codeforces Round 171](https://codeforces.com/contest/2026)
    EducationalCodeforcesRound171D.SumsofSegments定义四个前缀和:\(s_i=a_1+a_2+\dots+a_i\)\(u_i=s_1+s_2+\dots+s_i\)\(t_i=s(i,i)+s(i,i+1)+\dots+s(i,n)\)\(ts_i=t_1+t_2+\dots+t_i\)\(s_i\)为\(a_i\)的前缀和,\(u_i\)为\(s_i\)的前缀和,\(t_i\)为分块之后第......
  • javaweb基于SSM开发简单的学生考勤管理系统源码 课程设计 大作业
    作品编号:1127数据库:mysql后端技术:SSM文档资料:无文档......
  • 浏览器中在线预览pdf文件,pdf.mjs插件实现web预览pdf
    背景:本来只是淘宝上卖卖袜子,想着扩展一下业务,准备做同名“来家居”海外袜子馆外贸项目,碰到pdf在线预览的需求,就找了pdf.js插件进行实践后把此方法记录下来,可以通过多种方法来实现,每种方法都有其优缺点和适用场景。简单一点的可以使用<iframe>或<embed>标签,这两种方法都是通过浏览......
  • 又一本让人醍醐灌顶的好书《架构探险:从零开始写Java Web框架》
    我最初是在《码农翻身2》上了解到《架构探险:从零开始写JavaWeb框架》这本书的,刘伟老师在书中提到,这本书在他早期学习时对他帮助很大。因此,我也购买了这本书来学习。 这本书主要介绍了如何自己编写一个Web框架,使其达到类似于简化版Spring的效果。作者尽量使用基础工具包,并以通......
  • Javaweb 实验6 JSP内置对象
    我发现了有些人喜欢静静看博客不聊天呐,但是ta会点赞。这样的人呢帅气低调有内涵,美丽大方很优雅。说的就是你,不用再怀疑哦目的:掌握JSP内置对象的使用。理解JSP的作用域掌握JSP的表达式使用实验要求:完成实验题目要求提交实验报告,将代码和实验结果页面截图放入报告中第......
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备在内网播放WebRTC流,显示一直加载中是
    在科技日新月异的今天,各行各业都在经历着前所未有的变革。视频监控技术,作为安全防范体系的重要组成部分,更是随着技术的演进不断升级,以适应更加复杂多变的安全需求。NVR录像机汇聚管理EasyNVR,作为一款集视频流处理、录像存储、分发管理等功能于一体的综合性视频监控云平台,正是这......