js逆向系列之猿人学爬虫第17题-天杀的http2.0
文章目录
- 1. 目标网站
- 2. 抓包分析
- 3. 编码测试
1. 目标网站
网址:
https://match.yuanrenxue.com/match/17
2. 抓包分析
这道题目,叫天杀的http2.0,估计应该是用的http2.0协议。
我们验证一下,打开谷歌浏览器的console输入:window.chrome.loadTimes()
可以看到输出的connectionInfo 和 npnNegotiatedProtocol 是h2就说明使用的是http2。
再把我以前的博客粘一下。
现在的大部分网站都是基于HTTP/1.x协议的,但是还有一小部分是HTTP/2.0的,遇到这样的网站,爬虫的很多常用库都没法用了,目前python 的requests库并不支持http/2.0网站,scrapy2.5.0 即2021.4更新开始支持HTTP2.0,但是官网明确提示,现在是实验性的功能,不推荐用到生产环境,当前 Scrapy 的 HTTP/2.0 实现的已知限制包括:
- 不支持 HTTP/2.0 明文(h2c),因为没有主流浏览器支持未加密的 HTTP/2.0。
- 没有用于指定最大帧大小大于默认值 16384 的设置,发送更大帧的服务器的连接将失败。
- 不支持服务器推送。
- 不支持bytes_received和 headers_received信号。
关于其他的一些库,也不必多说了,对 HTTP/2.0 的支持也不好,目前对 HTTP/2.0 支持得还可以的有 hyper 和 httpx。
hyper使用参考
HTTPX使用参考
我们这里用hyper库,安装hyper库也很简单,直接pip install hyper就行了。
我们抓包获取数据包的url:
https://match.yuanrenxue.com/api/match/17?page=1
其他没啥需要注意的反爬,我们接下来直接上代码。
3. 编码测试
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : 冰履踏青云
# @File : 17.pyimport jsonpath
import requests
from hyper.contrib import HTTP20Adapterdef get_data(page):url = 'https://match.yuanrenxue.com/api/match/17?page={}'headers= {"User-Agent": "yuanrenxue.project",# 设置我们登陆账号时候的cookie,sessionid必须传 ,否则未登录状态下只可以抓前三页"cookie": "sessionid=13guppo9dxzbdixi3v8wkqzme9473pij"}# 创建session对象,并设置请求头s = requests.session()s.headers = headers# 使用http2.0s.mount('https://match.yuanrenxue.com', HTTP20Adapter())data = s.get(url.format(str(page))).json()values_list = jsonpath.jsonpath(data,"$..value")return values_listif __name__ == '__main__':res_list = []for i in range(1,6):values_list = get_data(i)res_list.extend(values_list)print(res_list,len(res_list))print('所有数字之和为:',sum(res_list))
为便于学习交流草创了一个q群: Python炼丹大师交流群
后端 爬虫 数据分析 机器学习等和python相关的都可以在此畅所欲言
编程资源:编程学习资源传送门
文章到此结束,但愿本文能对你有一点点帮助,欢迎三连,点个赞,收个藏啥的,有问题的尽管砸来,我有故事你有酒,好好交流不分手!下次见!
js逆向系列之猿人学爬虫第17题-天杀的http2.0相关推荐
- js逆向系列之猿人学爬虫第13题
文章目录 1. 目标网址 2. 抓包分析 3. 编码测试 1. 目标网址 目标网站:猿人学web第13题 2. 抓包分析 浏览器打开无痕模式,看第一页数据包: 两个名叫13的包,第二个有数据,是请求了 ...
- JS逆向:猿人学爬虫比赛第九题详细题解
实战地址 http://match.yuanrenxue.com/match/9 抓包分析 地址栏输入 地址,按下F12并回车,浏览器停在这里: 不用理会它,点击下图所示的按钮: 按下F8,让浏览器继 ...
- AST反混淆实战:猿人学爬虫比赛第二题详细题解
缘起 应星友要求,写下此文,哎,有钱能使鬼推磨. 实战地址: http://match.yuanrenxue.com/match/2 抓包分析 由于谷歌浏览器某些请求不会显示,建议使用火狐浏览器来抓包 ...
- [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(中)
一.备注 在阅读此文章前,请先阅读前一篇<[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)> 二.找参数来源(二) 在前一篇文章中,我们找出了Cookie ...
- [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(下)
一.备注 在阅读此文章前,请先阅读前两篇 <[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)> <[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第 ...
- [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie
一.题目 链接: <猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie> 二.分析 按照以往习惯,我们先按F12打开控制台,Network抓包,勾选preserve log ...
- 猿人学·爬虫逆向高阶课
我跟 virjar 出了一套爬虫课(猿人学·爬虫进阶培训课),包含:安卓逆向抓取.JS 高阶逆向抓取.安卓群控抓取.容器定制化等. 实际上我去年就在做这个爬虫课了,一直没有放到网课平台上公开宣传,但是 ...
- 【JS逆向系列】某空气质量监测平台无限 debugger 与 python算法还原
[JS逆向系列]某空气质量监测平台无限 debugger 与 python算法还原 1.前置阅读 2.过反调试 3.js分析 4.代码逻辑改写 1.前置阅读 样品地址:aHR0cHM6Ly93d3cu ...
- 【JS逆向系列】某乎x96参数3.0版本与jsvmp进阶
[JS逆向系列]某乎x96参数3.0版本与jsvmp进阶 前言 初看js代码 补环境方案 修改字节码方案(反混淆与反汇编) 算法还原 后记 前言 距离上一次的某乎jsvmp也过了好一段时间,现在也从2 ...
最新文章
- textrank4zh是_GitHub - 997666901/TextRank4ZH: 从中文文本中自动提取关键词和摘要
- python计算1到100的和-Python3基础 sum,range 计算1到100的和
- Windows2008下搭建NFS实现windows空间提供linux使用
- 写程序的一些感想和教训
- Mapreduce的序列化和流量统计程序开发
- C#LeetCode刷题之#371-两整数之和(Sum of Two Integers)
- 放生大海的鱼,为什么要在鱼肚子上捅一个洞?
- SQL:字符串拼接中换行处理
- Mycat适合场景及不适合场景
- Kubernetes1.7 新特性:日志审计变化
- navicat远程连接mysql,2003 can't connect to mysql server on 10038
- JavaScript实现图片上传并预览并提交
- 这 9 个 Java 开源项目 yyds
- 设置背景颜色html,css怎么设置背景颜色?
- RuntimeError: Cannot re-initialize CUDA in forked subprocess.
- kali无法获取ip地址的解决方法
- Android 9.0 cmds
- PID调谐方法:根据开环响应特性调谐(一)
- 【Android学习】图片
- CTF中RSA常见解题思路
热门文章
- 多比(SVG/VML)图形控件
- 数据库设计范式及原则
- 了解js中什么是回调函数?
- 380v pcb 接线端子_PCB常用的接线端子
- matlab flash动画,“雨课堂”+ matlab + flash 动画让定积分概念教学妙趣横生论文
- 电力电子技术期末整理
- 知乎明日港股IPO:成首家以双重主要上市方式回港中概互联网公司
- C++ 将二叉树叶子结点从左往右顺序串连
- 日期匹配星座,月日匹配星座,android 星座
- 云计算应用越来越广泛,云计算用户需要注意的主要趋势有哪些?